Использование NUnit Multiple Assert, когда операторы Assert находятся в разных методах - PullRequest
0 голосов
/ 24 апреля 2019

Я выполняю автоматизированные шаги BDD, используя NUnit утверждения для каждого шага, т.е. Then And для моих тестов пользовательского интерфейса.

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

Я думал об использовании NUnit Multiple Assert, но это требует, чтобы все утверждения были вместе. Есть идеи?

BDD Steps

Then I am shown results for("foo")
And the page count is(3)

Я использую библиотеку LightBDD https://github.com/LightBDD/LightBDD

// Then Step
private void ThenIAmShownResultsFor(string expectedResults)
{
    Assert.AreEqual(expectedResults, actual);
}

// And Step
private void AndThePageCountIs(int expectedResults)
{
    Assert.AreEqual(expectedResults, actual);
}

1 Ответ

0 голосов
/ 24 апреля 2019

См. эту статью . Ваши тесты, которые зависят от результатов другого, должны высмеивать эти другие тесты или методы. Каждый тест должен быть полностью отделенным от любых других тестов. Вы не должны никогда, никогда ставить один тест в зависимость от результатов другого. Если тест основан на результатах другого теста, вам необходимо смоделировать ответ другого теста.

Код, предполагающий _foo

// And Step
private void AndThePageCountIs(int expectedResults)
{
   actual = _foo.Setup(x => x.ThenIAmShownResultsFor()).Returns(expectedResults);
   Assert.AreEqual(expectedResults, actual);
}
...