![](/img/trans.png)
[英]How to mock a class, whose object created at class level of another class
[英]Mock a new Object created at class level
我有一个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);
}
}
我同意这些评论 - 这段代码需要依赖注入,而应该修复。 如果你真的想要模拟字段,你可以使用PowerMock或这个问题的解决方案: Mockito:模拟私有字段初始化
Mockito附带一个助手类来为您节省一些反射锅炉板代码:
import org.mockito.internal.util.reflection.Whitebox; //... @Mock private Person mockedPerson; private Test underTest; // ... @Test public void testMethod() { Whitebox.setInternalState(underTest, "person", mockedPerson); // ... }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.