0
在对某个类进行单元测试时,需要针对类中的不同数据组合测试相同的方法。这可以通过编写几个TextFixture并重复每个测试方法来实现,如下所示。在nUnit中构造TextFixtures
[TextFixture]
public class WhenBuildingLongFoo
{
private Foo foo;
[Setup]
public void Creating()
{
foo = new Foo(){Height = new FooHeight(200)};
}
[Test]
public void ReturnsValidHeight()
{
Assert.AreEqual(200, foo.Height);
}
}
[TextFixture]
public class WhenBuildingShortFoo
{
private Foo foo;
[SetUp]
public void Creating()
{
foo = new Foo(){Height=newFooHeight(2);
}
[Test]
public void ReturnsValidHeight()
{
Assert.AreEqual(2, foo.Height);
}
}
- 是什么结构,灯具的最佳途径,使法ReturnsValidHeight仅被写入一次?
我想出了在公共命名空间中创建一个公共的静态类实用程序,它具有此方法;但可以请你提供更好的建议吗?
就像用这样的方法创建一个抽象类,然后从它派生装置?
- 如何在灯具中重新使用设置,只是变化的值?
我同意。 [SetUp]属性有其缺点。例如,它在物理上分隔了一部分测试代码。将每个测试都视为“微小的宇宙本身”,而不必扫描可能的SetUp方法是一种很好的尝试。您可以经常使用对Builder的测试方法调用或类似的东西替代SetUp方法,这样可以提供更多的灵活性(即每个测试都需要_exactly_相同的SetUp?)。 – prgmtc