2016-06-14 4 views
1

私はMockitoを使っていくつかのユニットテストを書いています。Mockitoを使ってキャストした後にオブジェクトに偵察する

ABaseは、その中に具体的な方法とのインターフェースである
public interface A extends ABase { } 

:私は、次のシナリオに走りました。私はAのインスタンスでMockito.spy()を使用しています。で宣言されているfoo()が、私が書いているコードで呼び出されたメソッドを確認したいと思います。コード内では、AABaseにキャストされ、foo()が呼び出されます。何をするかのよう

A bar = spy(new A()); 
//... (function I'm testing is called, A is cast to ABase and foo() called) 
verify(bar, times(1)).foo(); //problem line, foo not found 

任意の提案:しかし、私は私がしようとライン上(メソッドが見つからない)ビルドエラーを取得し、foo()を確認するには、このように、私のテストメソッドで呼び出されたのですか?ありがとう!

EDIT:私の元の質問にはいくつかの誤りがありました。私の謝罪、それは今修正する必要があります。

答えて

0

は別にAはインタフェースとインタフェースであるため、ABaseは、クラスすることができないという事実からクラスを拡張することはできません。

あなたはverifyAを渡しています。これはコンパイルすべきではありません。代わりにbarを使用してみてください。 Mockitoは、モックまたはスパイをverifyに渡すことを期待しているため、特定の引数に対する呼び出しを検証できます。

+0

私のコードは、インターフェイスのキーワードが間違っていました。私もそれを見てかなり混乱していた。また、「A」はタイプミスでした。あなたは正しいです。しかし、これらの2つのことを考えれば、まだコンパイルされません。 –

+0

@VaishakLalsangi、あなたのソースコードをより多く提供できますか?私はちょうど私のソースのいくつかでそれをチェックし、期待どおりに働いた。 – Brian

関連する問題