「ユニット」レベルでは、テストするものが 2 つあります。
- ボタンをタップするとアクションメソッドが送信されますか?
- アクション メソッドは配列から最後のオブジェクトを削除しますか?
最初のものは無視してください。これは Apple の問題です (または、好意的には統合テストです)。2 つ目は、Assemble、Act、Assert のプロセスを考えれば簡単です。
- 組み立てる: ビュー コントローラーとそのコンテンツ配列を構築します。
- Act: アクション メソッドを呼び出します。
- Assert: 最後のオブジェクトが削除されたことを確認します。
-(void)testRemovalOfLastObjectOnButtonAction
{
//... build and populate the view controller
id lastObject = [array lastObject];
[viewController buttonTapped: sender];
STAssertFalse([array containsObject: lastObject], @"Object %@ should be removed", lastObject);
}
注: カウントが減少したかどうかではなく、最後のオブジェクトが削除されたかどうかを明示的にテストします。これは、オブジェクトが削除された場合に発生する可能性があります。