3
我正尝试着手使用纯TDD并考虑BDD风味。我正在努力去掌握,如何使用MSpec编写单元测试与NUnit完全相反。将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;
}
你会如何在一个干净的方式,但不使用任何BDD扩展或任何其转换为NUnit的。我认为这是一个好主意,每个断言都应该是一个单独运行的测试,并且Establish
和Because
应该只针对所有断言执行一次。对于Establish
和Because
,我可以使用[Setup]
,但是这将针对每个测试运行。我可以使用Assert.
作为It
,但这不会使它们单独运行测试。
这个例子与NUnit风格对比如何?