MSpec Установить делегата

Согласно документации MSpec, установка должна выполняться только один раз. Тем не менее, когда я отлаживаю, установить установить один раз для его делегата. Вот простой пример:

public class TestExample
{
        Establish arrange = () =>
        {
            a = 5;
        };
        Because of = () => a = a * 2;
        It should_be1 = () => a.ShouldEqual(10);
        It should_be2 = () => a.ShouldBeGreaterThan(9);
        It should_be3 = () => a.ShouldBeLessThan(90);
        private static int a;
}

Должен ли он запускаться один раз за делегата? Или один раз за урок?

1 ответ

Решение

Это один раз для контекста (класса) - если только у него нет базового класса, и в этом случае сначала запускается базовый класс Installize (рекурсивно, настолько глубоко, как дерево наследования классов).

Как вы определяете, что он выполняется несколько раз?

Во всяком случае, я не могу воспроизвести это поведение, используя MSpec 0.9.0, бегун ReSharper и точный код из вопроса. Все спецификации выполняются, а команда Installize выполняется один раз, как и ожидалось.

Посыпать несколько Console.WriteLine() следующее:

using System;
using Machine.Specifications;

namespace Stackru_26809460
    {
    public class TestExample
        {
        static int a;

        Establish arrange = () =>
            {
            a = 5;
            Console.WriteLine("Establish");
            };

        Because of = () => a = a*2;

        It should_be1 = () =>
            {
            a.ShouldEqual(10);
            Console.WriteLine("should_be1");
            };

        It should_be2 = () =>
            {
            a.ShouldBeGreaterThan(9);
            Console.WriteLine("should_be1");
            };

        It should_be3 = () =>
            {
            a.ShouldBeLessThan(90);
            Console.WriteLine("should_be1");
            };
        }
    }

Когда я запускаю это в командной строке, я получаю:

Спецификации в Stackru_26809460:

TestExample
установить
should_be1
"Должно быть1
should_be1
"Должно быть2
should_be1
"Должно быть3


Контексты: 1, Технические характеристики: 3, Время: 0,53 секунды

C:\Users\Tim\Projects\Stackru\Stackru_26809460\ Bin\Debug>

Это похоже на проблему бегуна для меня...

Другие вопросы по тегам