私は現在、アプリケーションのViewControllerに単体テストを効率的に追加する方法を研究しています。これまでは、特定のView Controllerが別のView Controllerを提示するまで、かなりうまくいきました。OCMockとUIViewController
私はOCMockとXCTestを使用しています。
id partialMock = OCMPartialMock([TestViewController class]);
[partialMock doSomeStuff];
OCMVerify([partialMock presentViewController:[OCMArg any] animated:[OCMArg any] completion:[OCMArg any]]);
を次のようにあなたが見ることができるようにテストがあり、私はpresentViewController
がdoSomeStuff
関数内でテストしたビューコントローラに呼ばれたことを確認します。与えられた例は私が現在持っているものの簡略版です。主な違いは、引数viewController
が別の疑わしいオブジェクトであることを確認することです。
doSomeStuff
メソッドがスタブされていないため、呼び出しは実際のTestViewController
インスタンスに転送され、インスタンスは次にpresentViewControllerを呼び出し、partialMockの検証を起動しません。
紛失しているものがありますか?それとも、私が達成しようとしていることは本当に元に戻すことができますか?あなたは2.10で説明したようandDo(nil)
を使用してSUPRESSするメソッドスタブでき
こんにちはマルクを、私はここで間違っているかもしれないが、あなたは、クラスオブジェクトの部分的なモックを設定しています。通常、標準的なモックオブジェクトを設定するには、クラスを使用しますが、部分的には、スパイするオブジェクトから設定する必要があります。この場合、あなたのviewController –
ああ、例は正しくない。私は実際に2つのビューコントローラを持っているので、これは私に何かを考えるようになります。 –