あなたはこれらのオブジェクトを作成し、@Spy
機能の使用方法とそれらをあざけるだろう、特別なパッケージレベルのメソッドを作成することができ
public class MyClass{
private Datasource ds;
public void methodUnderTest(){
JdbcTemplate template = getTemplateInstance(ds);
...
}
JdbcTemplate getTemplateInstance(Datasource ds){
return new JdbcTemplate(ds);
}
}
2)クラスをスパイクし、インスタンス作成メソッドをモックします。
public class MyClassTest{
@Spy
@InjectMocks
private MyClass myClassSpy;
@Mock
private Datasource dsMock;
@Mock
private JdbcTemplate templateMock;
@Before
public void init(){
MockitoAnnotations.initMocks(this);
}
@Test
public void test(){
// Arrange
doReturn(templateMock).when(myClassSpy).getTemplateInstance(dsMock);
// Act and Assert ...
}
}
あなたはすでにSpringを使用していますが、新しいインスタンスを作成するのではなく、NamedParameterJdbcTemplateを挿入するのはなぜですか? –