Nunit-Writing Tests

6515 ワード

Nunitテストは任意にattributesをサポートすることができる.Net言語の使用
  • Attributesは、テストクラスおよびテスト方法を識別するために使用され、その後、動作
  • を異なる方法で修正する.
  • Assertionsは、1つ以上の制約について実際の値をテストし、成功または失敗したテスト結果
  • と判断する.
  • Test Contextテストコードを書くとき、コンテキストのいくつかの情報
  • をテストする必要がある場合があります.

    Attributes:

  • Action
  • Category
  • Combinatorial
  • Culture
  • DatapointAttribute/DatapointsAttribute
  • Description
  • ExpectedException
  • Explicit
  • Ignore
  • Maxtime
  • Pairwise
  • Platform
  • Property
  • Random
  • Range
  • Repeat
  • RequiredAddin
  • RequiresMTA
  • RequiresSTA
  • RequiresThread
  • Sequential
  • SetCulture
  • SetUICulture
  • SetUp
  • SetUpFixture
  • Suite
  • TearDown
  • Test
  • TestCase
  • TestCaseSource
  • TestFixture
  • TestFixtureSetUp
  • TestFixtureTearDown
  • Theory
  • Timeout
  • Values
  • ValueSource

  • Assertions


    NUnit 2.4以前は、Assertクラスの個別のメソッドが各異なるブレークスルーに使用されていました.このメソッドをClassic Modelと呼び、各クラスのブレークスルーに相当し、1つのメソッドです.
    Assert.AreEqual( int expected, int actual );
    Assert.AreEqual( int expected, int actual, string message );
    Assert.AreEqual( int expected, int actual, string message, 
                     params object[] parms );
    				 
    Assert.AreEqual( uint expected, uint actual );
    Assert.AreEqual( uint expected, uint actual, string message );
    Assert.AreEqual( uint expected, uint actual, string message, 
                     params object[] parms );
    
    Assert.AreEqual( decimal expected, decimal actual );
    Assert.AreEqual( decimal expected, decimal actual, string message );
    Assert.AreEqual( decimal expected, decimal actual, string message, 
                     params object[] parms );
    
    Assert.AreEqual( float expected, float actual, float tolerance );
    Assert.AreEqual( float expected, float actual, float tolerance,
                     string message );
    Assert.AreEqual( float expected, float actual, float tolerance,
                     string message, params object[] parms );
    
    Assert.AreEqual( double expected, double actual, double tolerance );
    Assert.AreEqual( double expected, double actual, double tolerance,
                     string message );
    Assert.AreEqual( double expected, double actual, double tolerance,
                     string message, params object[] parms );
    
    Assert.AreEqual( object expected, object actual );
    Assert.AreEqual( object expected, object actual, string message );
    Assert.AreEqual( object expected, object actual, string message, 
                     params object[] parms );
    
    Assert.AreNotEqual( int expected, int actual );
    Assert.AreNotEqual( int expected, int actual, string message );
    Assert.AreNotEqual( int expected, int actual, string message,
                     params object[] parms );
    
    Assert.AreNotEqual( long expected, long actual );
    Assert.AreNotEqual( long expected, long actual, string message );
    Assert.AreNotEqual( long expected, long actual, string message,
                     params object[] parms );
    
    Assert.AreNotEqual( uint expected, uint actual );
    Assert.AreNotEqual( uint expected, uint actual, string message );
    Assert.AreNotEqual( uint expected, uint actual, string message,
                     params object[] parms );
    
    Assert.AreNotEqual( ulong expected, ulong actual );
    Assert.AreNotEqual( ulong expected, ulong actual, string message );
    Assert.AreNotEqual( ulong expected, ulong actual, string message,
                     params object[] parms );
    
    Assert.AreNotEqual( decimal expected, decimal actual );
    Assert.AreNotEqual( decimal expected, decimal actual, string message );
    Assert.AreNotEqual( decimal expected, decimal actual, string message,
                     params object[] parms );
    
    Assert.AreNotEqual( float expected, float actual );
    Assert.AreNotEqual( float expected, float actual, string message );
    Assert.AreNotEqual( float expected, float actual, string message,
                     params object[] parms );
    
    Assert.AreNotEqual( double expected, double actual );
    Assert.AreNotEqual( double expected, double actual, string message );
    Assert.AreNotEqual( double expected, double actual, string message,
                     params object[] parms );
    
    Assert.AreNotEqual( object expected, object actual );
    Assert.AreNotEqual( object expected, object actual, string message );
    Assert.AreNotEqual( object expected, object actual, string message,
                     params object[] parms );

    NUnit 2.4から、実行するテストメソッドに制約オブジェクトを渡すことによってAssertクラスの単一のメソッドですべての論理的断言を行う新しいconstraint-based modelが導入されました.
    Assert.That( object actual, IResolveConstraint constraint )
    Assert.That( object actual, IResolveConstraint constraint,     string message )
    Assert.That( object actual, IResolveConstraint constraint,   string message, object[] parms )		 
    Assert.That( ActualValueDelegate del, IResolveConstraint constraint )
    Assert.That( ActualValueDelegate del, IResolveConstraint constraint, string message )
    Assert.That( ActualValueDelegate del, IResolveConstraint constraint, string message, object[] parms )	 
    Assert.That( ref T actual, IResolveConstraint constraint )
    Assert.That( ref T actual, IResolveConstraint constraint,  string message )
    Assert.That( ref T actual, IResolveConstraint constraint, string message, object[] parms )	 
    Assert.That( bool condition );
    Assert.That( bool condition, string message );
    Assert.That( bool condition, string message, object[] parms );
    Assert.That( TestDelegate del, IResolveConstraint constraint );

    TestContext (NUnit 2.5.7 / 2.6)


    各ユニットテストは、現在の環境の情報とテスト自体の情報を含む実行コンテキストで実行されます.TestContextクラスでは、このような情報を取得できます.