0

私はユニットテストを初めて使用しますが、それについて質問があります。

私のソースコードでは、サブクラス化していNSMutableArrayます。NSMutableArrayプリミティブNSMutableArrayNSArrayメソッドを実装している必要があります。これらのメソッドは、場合によってはのNSExceptionsようにスローされNSRangeExceptionsます。

質問は次のとおりです。「このプリミティブメソッドの単体テストを行うとき、ケースを書く必要がありNSExceptionsますか?

例:

//array with 3 objects
STAssertThrows([array insertObject:object atIndex:8], @"");
  1. これは正しいです?
  2. これは必要ですか?
4

1 に答える 1

1

考慮すべき2つのケースがあります。例外がスローされることを主張することと、例外がスローされないことを主張することです。

後者は必須ではありませんが、それでも良い考えです。これは、アサーションメッセージで、発生することを期待していたこと、または発生しないことをより明確に説明する機会です。ただし、スキップSTAssertNoThrowしても、例外はテストに失敗します。

例外を発生させたい場合は、質問のコードで行ったように、それを表明する必要があります。ただし、空の文字列ではなく、意味のあるアサーションメッセージを提供する必要があります。

于 2013-02-21T19:44:09.733 に答える