我使用nUnit编写单元测试,测试结构与Phil Haack's post
类似namespace MyNamespace
{
[TestFixture]
public class ClassToTest
{
[TestFixture]
public class MethodToTest
{
[Test]
public void ThrowsArgumentNullException_OnNullIndex()
{
...
}
.. more tests for the method ..
}
[TestFixture]
public class AnotherMethodToTest
{
[Test]
public void ThrowsArgumentNullException_OnNullIndex()
{
...
}
.. more tests for the method ..
}
}
}
我的问题是,对于用于对单元测试进行分组的外部类,我得到不确定。我曾尝试在外部和/或内部类中使用和不使用[TestFixture]
,但它总是让我不确定。
我认为正确的行为应该是从内部类测试中显示单元测试状态。有任何想法吗?
更新
一个丑陋的修复程序似乎正在为外部类创建一个虚拟测试,然后在其上放置属性Ignore
。
[Test, Ignore]
public void DummyTest()
{
Assert.IsTrue(true);
}
更新2
Channs& Wayne是正确的,外部类只用于分组,因此从类更改为命名空间是最佳解决方案。
答案 0 :(得分:7)
您的外部类仅对相关方法进行分组,建议将其替换为命名空间。
namespace MyNamespace.ClassToTest
{
...
}
答案 1 :(得分:6)
你可能有一个没有[Test]的[TestFixture] - 也许外层没有任何自己的测试?在这种情况下,为什么不只使用命名空间?
答案 2 :(得分:1)
只是一个猜测,类上的属性会导致您的类被作为一个测试类处理,但是类中没有测试它会导致我们的不确定性:
[TestFixture]
public class ClassToTest