2

を使用するTestInitialize()と、 内のすべてのテストを初期化できますTestClass。しかし、一部のテストのみを初期化し、他のテストを初期化したくない場合、どうすればこれを達成できますか?

4

3 に答える 3

2

テスト データの非共有初期化を各[TestMethod]メソッドに移動します。

初期化メソッドはテストごとに 1 回呼び出されるため、すべてのテストで実行したくないコードを特定のメソッドに移動するだけです。

于 2012-10-23T14:28:12.637 に答える
1

これを実現するには、それらを 2 つのクラスに分けます。または、両方が同じメソッドと変数を使用する場合は、共有メソッドとデータを持つ共通の基本クラスから継承するサブクラスにそれらを配置します。

于 2012-10-23T14:29:13.593 に答える
0

最善の方法は、あなたTest Methodsを別の に分けることTest Classesです。ただし、それらをすべて 1 つにまとめたい場合はTest Class、テストごとに異なる初期化メソッドを作成できます。

[TestClass]
public class TestClass
{
    [TestInitialize]
    public void Initialize()
    {
        switch (TestContext.TestName)
        {
            case "TestMethod1":
                this.InitializeTestMethod1();
                break;

            case "TestMethod2":
                this.InitializeTestMethod2();
                break;

            default:
                break;
        }
    }

    [TestMethod]
    public void TestMethod1()
    {
    }

    [TestMethod]
    public void TestMethod2()
    {
    }

    private void InitializeTestMethod1()
    {
        // Initialize TestMethod1
    }

    private void InitializeTestMethod2()
    {
        // Initialize TestMethod2
    }

    public TestContext TestContext { get; set; }
}
于 2012-10-24T08:09:55.130 に答える