14

我有使用 nUnit 编写的单元测试,测试的结构与Phil Haack 的帖子类似

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 是正确的,外部类只是用于分组,所以从类更改为命名空间是最好的解决方案。

4

3 回答 3

7

您的外部类仅对相关方法进行分组,建议将其替换为命名空间。

namespace MyNamespace.ClassToTest
{
  ...
}
于 2012-08-01T13:32:06.277 回答
6

您可能有一个没有 [Test] 的 [TestFixture] - 也许外部类没有任何自己的测试?在这种情况下,为什么不直接使用命名空间呢?

于 2012-08-01T13:31:19.120 回答
1

只是猜测,类上的属性会导致您的类被作为测试类处理,但是在类中没有测试它本身会导致我们的不确定:

[TestFixture]     
public class ClassToTest
于 2012-08-01T13:31:25.443 回答