2016-12-14 10 views
0

AをBモックと一緒にコンストラクタパラメータとしてモックできますか?AをBモックでコンストラクタパラメータとしてモックできますか?

private B actionContext; 
private A target; 

@BeforeEach 
void setUp() { 
    actionContext = mock(B.class); 
    target = mock? 
} 

public class A {//... 
    public A(B b){//... 
    } 
} 
+0

クラスAをテストしていますか、またはAを使用してBメソッドを呼び出すクラスですか? –

+0

@EdwinMiguelクラスAをテストしています。 – ArthurDn

+0

Aクラスを模擬する必要はありません.AモジュラーのBモックを追加するだけです。 –

答えて

0

あなたは... とき(mockB.method())thenReturnを()mockito注釈setUpメソッドでテスト動作を設定

@Mock 
private B mockB; 

@Spy 
@InjectMocks 
private A testObj = new A(mockB); 

を使用することができます。

+0

私が見ているように、新しいA(mockB)はモックではありませんが、私もそれを嘲笑しておく必要があります。 – ArthurDn

+0

@ArthurDnクラスをテストしようとしているときにそのクラスをモックしたくない場合 - 依存関係をモックして孤立してテストできるようにしたい場合 – dreamer

+0

メソッドAaはメソッドAbあなたはそれらのために別々のテストを書いてみたいですか? – ArthurDn

0

あなたがclass Aメソッドをモックとしたい場合は、class B

class Aをからかっモックする必要はありませんが、十分な

@BeforeEach 
void setUp() { 
    A mockedA = mock(A.class); 
} 

であり、あなたがclass Bの嘲笑メソッドを使用したい場合は、別途

それを模擬することができます
@BeforeEach 
void setUp() { 
    A mockedA = mock(A.class); 
    B mockedB = mock(B.class); 
} 

Mockito docsも読んでみることをお勧めしますINGの原則。

関連する問題