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]外部および/または内部クラスで試してみましたが、常に決定的ではありません。

内部クラスのテストから単体テストの状態を表示するのが正しい動作だと思います。何か案は?

外側のクラスについては決定的ではありません

アップデート

醜い修正の 1 つは、外部クラスにダミー テストを作成し、それに属性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 に答える