2010-12-30 7 views
21

私はVS2008でNUnitを使用しましたが、VS2010のMSTestに順応しています。 TestSetup()でオブジェクトを作成し、TestCleanup()で破棄し、テストメソッドがNUnitで実行されるたびにオブジェクトを作成して、各テストメソッドでコードを複製できないようにしました。VS20010のClassInitialize()とTestInitialize()をNUnitと対照的に使用する

MSTestではこれはできませんか? ClassInitialize、ClassCleanup、TestInitialize、TestCleanupの各属性を使用している例は、コンソールに書き込む方法のみを示しています。いずれも、これらの属性の詳細な使用を示していません。

答えて

34

ここには、TestInitializeとTestCleanupを使用した簡単な例があります。

[TestClass] 
public class UnitTest1 
{ 
    private NorthwindEntities context; 

    [TestInitialize] 
    public void TestInitialize() 
    { 
     this.context = new NorthwindEntities(); 
    } 

    [TestMethod] 
    public void TestMethod1() 
    { 
     Assert.AreEqual(92, this.context.Customers.Count()); 
    } 

    [TestCleanup] 
    public void TestCleanup() 
    { 
     this.context.Dispose(); 
    } 
} 
+0

ありがとう、トム。 NorthwindEntitiesがテストプロジェクトで参照されているアセンブリであると仮定して正しいですか? –

+0

はい、参照されているアセンブリに含まれていました。 –

+3

TestInitializeメソッドとTestCleanupメソッドは、図のように** public **とマークする必要があります。 – mungflesh

関連する問題