0

検証する OCMock をセットアップしようとしています。

TaskManagerDelegate次のメソッドを含むプロトコル があります。

- (void) addTasks:(NSArray * ) tasksToAdd;

このようにモックオブジェクトを設定した後、

id mockTaskManagerDelegate = [OCMockObject mockForProtocol:@protocol(TaskManagerDelegate)];

このようにオブジェクトをテスト対象のクラスに割り当てます。

taskManager.Whatever = mockTaskManagerDelegate;

taskManager でメソッドを呼び出してから、addTasks メソッドが TaskManagerDelegate で呼び出されたこと、および渡された配列にオブジェクトが 1 つだけ含まれていることを確認したいと考えています。

これまでのところ、パラメーターが渡されているかどうかを検出するために OCMArg クラスを使用してきましたが、特定の型が送信されてモックに送信されたこと、またはモックに送信されたオブジェクトが特定のテストに合格したことを確認する方法を理解するのに苦労しています (例では正確に 1 の .count)。私は C# のバックグラウンドを持っており、通常は Moq を使用します。Moq では、ラムダ関数を使用して、モック オブジェクトに送信されるパラメーターに対して特定のチェックを行うことができます。

OCMockでこれを行う方法を知っている人はいますか、または何らかの概念的な理由でそれができない場合は?

ありがとう、

4

2 に答える 2

0

OCMock サイトの機能の説明には次のようなものがあります: ;-)

"Objective-C ブロックが利用可能な場合、次のようにブロックで引数を確認できます。

[[mock expect] someMethod:[OCMArg checkWithBlock:^(id value) { /* return YES if value is ok */ }]];

それはあなたのために働くでしょうか?ブロックが利用できない環境にいますか?

于 2012-07-12T15:46:50.397 に答える