2011-12-29 16 views
1

これは最善のことではありませんが、オブジェクトのプライベートメソッドが呼び出されていることを確認したいので、部分模擬を作成し、私的な方法に対する期待。部分模擬からメソッドを '期待'することは可能ですか?

私がテストを実行すると、cleanupPreviousContentsは呼び出されませんが、テストは成功します。バグはどこですか?

よろしく、 クエンティン

答えて

7

はい、これが行うには完全に有効なものです。しかし、あなたはあなたの部分的なモックのための新しい参照を作成する必要があります。

Synchronizer * sync = [[Synchronizer alloc] initWithCleanup:YES]; 

id mockSync = [OCMockObject partialMockForObject:sync]; 
[[mockSync expect] cleanupPreviousContents]; 

... do something 

[mockSync verify]; 

はあなたinitWithCleanupメソッド内で呼び出さcleanupPreviousContentsですか?もしそうなら、あなたはちょっと違った構造にしなければならないでしょう:

Synchronizer *sync = [Synchronizer alloc]; 

id mockSync = [OCMockObject partialMockForObject:sync]; 
[[mockSync expect] cleanupPreviousContents]; 

[sync initWithCleanup:YES]; 

[mockSync verify]; 
+0

おっと、分かれたalloc/init! :) – buildsucceeded

関連する問題