Я пытаюсь начать с чистого TDD, а также рассмотреть вариант BDD. Я пытаюсь понять, как писать модульные тесты с MSpec в отличие от NUnit.
Рассмотрим простой тест MSpec, подобный следующему:
[Subject("PersonRepository")]
class when_adding_a_new_person
{
Establish context = () => sut = new PersonRepository();
Because of = () => sut.AddPerson("Jim", "Panse");
It should_have_a_person = sut.Count.ShouldEqual(1);
It should_have_that_persion = sut.Contains("Jim", "Panse");
static PersonRepository;
}
Как бы вы преобразовали это в NUnit чистым способом, но без использования каких-либо расширений BDD или чего-либо еще. Я думаю, что это хорошая идея, что каждое утверждение должно быть одним отдельно выполняемым тестом, а Establish
и Because
должны выполняться только один раз для всех утверждений. Я мог бы использовать [Setup]
для Establish
и Because
, но это будет выполняться для каждого теста. Я мог бы использовать Assert.
для It
, но это не сделало бы их отдельно запускаемыми тестами.
Как этот пример будет контрастировать со стилем NUnit?