Mockito 验证:需要但未调用错误
Mockito Verify : Wanted but not invoked error
我实际上正在尝试执行以下操作:
我的服务class
@Service
public class serviceclass{
@Autowired
MessageReplyingSender rclass;
public void doMethod(){
Object o = rlcass.something("hey","hey",null,1000);
}
}
public interface MessageReplyingSender {
public <T> Object something(String sendertopic,T message,Map<String, Object> headers, long replyTimeout)
throws Exception;
}
Test Class:
@RunWith(MockitoJUnitRunner.class)
public class testclass{
@InjectMocks
private serviceclass sclass;
@Mock
MessageReplyingSender rclass;
public void test throws Exception{
Mockito.verify(rclass).something(Mockito.anyString(), Mockito.anyString(), Mockito.any(), Mockito.anyLong());
Mockito.when(rclass.something(Mockito.anyString(), Mockito.anyString(), Mockito.any(), Mockito.anyLong())).thenReturn("gh");
sclass.doMethod();
}
}
这给了我未调用的通缉,实际上与此模拟的交互为零。知道我做错了什么吗??
您正在验证是否调用了 rclass#something
。但这并没有发生,因为你忘记用 serviceclass#doMethod
触发它
我实际上正在尝试执行以下操作: 我的服务class
@Service
public class serviceclass{
@Autowired
MessageReplyingSender rclass;
public void doMethod(){
Object o = rlcass.something("hey","hey",null,1000);
}
}
public interface MessageReplyingSender {
public <T> Object something(String sendertopic,T message,Map<String, Object> headers, long replyTimeout)
throws Exception;
}
Test Class:
@RunWith(MockitoJUnitRunner.class)
public class testclass{
@InjectMocks
private serviceclass sclass;
@Mock
MessageReplyingSender rclass;
public void test throws Exception{
Mockito.verify(rclass).something(Mockito.anyString(), Mockito.anyString(), Mockito.any(), Mockito.anyLong());
Mockito.when(rclass.something(Mockito.anyString(), Mockito.anyString(), Mockito.any(), Mockito.anyLong())).thenReturn("gh");
sclass.doMethod();
}
}
这给了我未调用的通缉,实际上与此模拟的交互为零。知道我做错了什么吗??
您正在验证是否调用了 rclass#something
。但这并没有发生,因为你忘记用 serviceclass#doMethod