作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经测试了一个验证 url 的 url 类
class ValidateUrl {
public Integer validateUrl(String url, int timeOut) throws Exception {
String url;
private RestTemplate restTemplate = new RestTemplate();
try {
((SimpleClientHttpRequestFactory)restTemplate.getRequestFactory()).setConnectTimeout(1000 * timeOut);
ResultClass result = restTemplate.postForObject(url, null, ResultClass.class);
if(result!= null) {
return result.getErrorCode();
}
} catch (Exception e) {
log.error("Error"+ e);
}
return -1;
}
}
我已经创建了一个测试类的测试用例 ValidateUrlTest 我正在验证 url
@Autowire
private ValidateUrl validateUrlInstance
private String url = "https://testingurl.com";
private String result = "{\"result\" : \"-1\"}";
@Test
public void validateUrlTest() throws Exception{
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
RestTemplate template = new RestTemplate(factory);
MockRestServiceServer server = MockRestServiceServer.createServer(template);
server.expect(requestTo(url))
.andRespond(given());
int i= validateUrlInstance.validateUrl(url, 2);
server.verify();
}
但是得到 java.lang.AssertionError:需要进一步的请求 [testng] 1 中的 0 被执行
最佳答案
您正在模拟的 RestTemplate
实例不是 ValidateUrl
类中使用的实例。
您应该注入(inject)它,而不是直接在方法中实例化它。
public class ValidateUrl {
private RestTemplate restTemplate;
@Autowired
public ValidateUrl(RestTemplate restTemplate) {
this.restTemplate = restTemplate;
}
public Integer validateUrl(String url, int timeOut) throws Exception {
...
}
}
关于java - 单元测试用例 MockRestServiceServer 预期的 url 不适用于 RestTemplate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38846912/
我是一名优秀的程序员,十分优秀!