2
下面是示例代碼,如果這項工作我可以在我的業務代碼中使用相同的邏輯。如何模擬字符串數組
class A{
public String[] getString(String[] a){
System.out.println("called");
return a;
}}
class B{
A a;
public String[] getString(){
String[] ab = {"inside main class"};
a= new A();
return a.getString(ab);
}
}
的Junit:
public class test{
private MockMvc mockMvc;
@Mock
private A a;
@InjectMocks
private B b;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
mockMvc = MockMvcBuilders.standaloneSetup(b).build();
}
@Test
public void test2Object(){
String[] bc = {"mock main class"};
Mockito.when(a.getString(Mockito.any(String[].class))).thenReturn(bc);
System.out.println((b.getString())[0]);
}
}
預期的O/P 「模擬主類」,但我得到的 「主類中」
任何人都可以請幫我解決這個問題。
謝謝你,但是如果我做vefify我得到錯誤 Mockito.verify(一).getString( Mockito.any(字符串[]類。)); 錯誤:「想要但不被調用」,但工作正常,當我使用 –
你可以發佈整個方法? –
@Test \t public void test2Object(){ \t \t String [] bc = {「mock main class」}; Mockito.verify(a).getString(Mockito.any(String []。class)); ((b.getString())[0]); \t} base class class B { \t A a; \t \t public String [] getString(){ \t \t String [] ab = {「main main class」}; \t \t String str =「」; \t \t // a = new A(); \t \t return a.getString(ab); \t}} 錯誤 通緝但未調用: a.getString(); –