Как вы считаете, самый чистый способ сделать несколько утверждений на результат? Раньше я тестировал все те же тесты, но это начинает чувствовать себя немного грязным, я просто играл с другой идеей, используя настройку.Рекомендации по нескольким утверждениям по одному и тому же результату в C#
[TestFixture]
public class GridControllerTests
{
protected readonly string RequestedViewId = "A1";
protected GridViewModel Result { get; set;}
[TestFixtureSetUp]
public void Get_UsingStaticSettings_Assign()
{
var dataRepository = new XmlRepository("test.xml");
var settingsRepository = new StaticViewSettingsRepository();
var controller = new GridController(dataRepository, settingsRepository);
this.Result = controller.Get(RequestedViewId);
}
[Test]
public void Get_UsingStaticSettings_NotNull()
{
Assert.That(this.Result,Is.Not.Null);
}
[Test]
public void Get_UsingStaticSettings_HasData()
{
Assert.That(this.Result.Data,Is.Not.Null);
Assert.That(this.Result.Data.Count,Is.GreaterThan(0));
}
[Test]
public void Get_UsingStaticSettings_IdMatches()
{
Assert.That(this.Result.State.ViewId,Is.EqualTo(RequestedViewId));
}
[Test]
public void Get_UsingStaticSettings_FirstTimePageIsOne()
{
Assert.That(this.Result.State.CurrentPage, Is.EqualTo(1));
}
}
«Логические утверждения» - хорошее слово для этого. Интересно, что пример Assertion Roulette является, по сути, примером того, как «ошибиться, не делая Arrange-Act-Assert». Различаются ли понятия? – Anthony
@ Энтони: понятия различаются, хотя они тесно связаны между собой. У вас гораздо меньше шансов почувствовать боль в Assertion Roulette, если вы будете следовать AAA (или четырехфазному тесту, как это делают тестовые шаблоны xUnit), но я все равно буду отличаться от полностью несвязанных утверждений в том же блоке Assert. –
Идею Assertion Roulette можно свести к минимуму в NUnit, указав комментарий в утверждении Assert. Вместо того, чтобы делать «Assert.That (condition)« use »Assert.That (condition, failureMessage)», где «failMessage» - это информация о проверке Assert. Это позволит вам точно знать, какой из утверждений в рамках единичного теста не удался. – Pedro