我有一个如下所示的SenderService类。
我正在使用restTemplate对象来调用url。我应该如何仅使用Mockito编写一个junit测试?
我已经尝试为我的班级创建一个间谍,但是它不起作用
@Service
public class SenderServiceImpl implements SenderService{
@Autowired
private Logger logger;
private RestTemplate restTemplate = new RestTemplate();
@Override
public void sendNotification(SenderNotification notification) {
try {
HttpEntity sendRequestBody = new HttpEntity<>
(notification,headers);
response =
restTemplate.postForEntity(url,sendRequestBody,String.class);
}
}
答案 0 :(得分:0)
我同意这些注释-此代码需要注入依赖项,而应该加以修复。 如果您真的想模拟字段,可以使用PowerMock 或此问题的解决方案: Mockito: Mock private field initialization
Mockito附带了一个帮助器类,可以为您节省一些反射器 板号:
import org.mockito.internal.util.reflection.Whitebox; //... @Mock private Person mockedPerson; private Test underTest; // ... @Test public void testMethod() { Whitebox.setInternalState(underTest, "person", mockedPerson); // ... }