Несколько утверждений на одно и то же значение в разных точках метода - PullRequest
0 голосов
/ 07 июня 2019

У меня есть задача, для которой я пытаюсь написать модульный тест.Когда я жду задачи, мне нужно убедиться, что для логического значения задано значение true в начале задачи, а затем задано значение false до ее завершения.Я могу легко проверить значение логического значения после завершения задачи, но мне нужно иметь возможность проверить значение в начале.

Я пробовал какой-то мониторинг событий, используя беглые утверждения,но это только сообщает мне, что свойство было обновлено, а не то, к чему было обновлено значение.

private bool _boolToTest;
public bool BoolToTest
{
    get => _boolToTest;
        set
        {
            if (SetProperty(ref _boolToTest, value))
            {
                RaisePropertyChanged(nameof(CanExecute));
            }
        }
}

public bool CanExecute => !_boolToTest;

public async Task Foo()
{
    BoolToTest = true;
    var somevalue = await _foo.Bar();
    if (something)
    {
        doSomething();
    }
    BoolToTest = false;
}

В идеальном мире я мог бы сделать что-то вроде value.Should (). BeTrueThenFalse () ;.Мне в основном нужно этого достичь.

1 Ответ

1 голос
/ 09 июня 2019

Вы сможете проверить его, подписавшись на событие PropertyChanged.

var actualValues = new List<bool> { };

var objectUnderTheTest = new MyObject();
objectUnderTheTest.PropertyChanged += (sender, args) =>
    { 
        var instance = (MyObject)sender;
        if (args.PropertyName == nameof(instance.CanExecute))
        {
            actualValues.Add(instance.BoolToTest);
        }
    }

 await objectUnderTheTest.Foo();

 var expected = new[] { true, false };

 actualValues.Should().BeEquivalentTo(expected, options => options.WithStrictOrdering());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...