java - 预期进一步的请求会留下 1 个未满足的期望。0 个请求已执行
问题描述
我的弹簧集成应用程序有以下测试类。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath*:/test-dao-rest.xml"})
public class TestEmployeeRestDao {
@Autowired
private EmployeeDao employeeRestDao;
@Autowired
private RestTemplate mockRestTemplate;
private MockRestServiceServer mockServer;
/**
* Sets up.
*/
@Before
public void setUp() {
mockServer = MockRestServiceServer.bindTo(mockRestTemplate).build();
}
@Test
public void testGetEmployeeById() {
when(mockRestTemplate.getForObject(url + 1, Employee.class)).thenReturn(emp2);
mockServer.expect(times(1), requestTo(url + 1))
.andExpect(method(HttpMethod.GET))
Employee employee = employeeRestDao.getEmployeeById(1L);
assertNotNull(employee);
mockServer.verify();
}
`}
我的xml配置
<bean class="com.nikolay.client.handler.CustomResponseErrorHandler"
id="customResponseErrorHandler"/>
<bean class="org.mockito.Mockito" factory-method="mock" id="mockRestTemplate">
<constructor-arg value="org.springframework.web.client.RestTemplate"/>
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
</list>
</property>
<property name="errorHandler" ref="customResponseErrorHandler"/>
</bean>
<bean class="com.nikolay.client.EmployeeRestDaoImpl" id="employeeRestDao">
<property name="restTemplate" ref="mockRestTemplate"/>
</bean>
</beans>
当我运行测试时,会引发错误。谁能说是错的?我不明白为什么会发生此错误。
java.lang.AssertionError: Further request(s) expected leaving 1 unsatisfied expectation(s).
0 request(s) executed.
你能帮我看看如何解决这个问题。
解决方案
mockRestTemplate
在这里自动接线。这不是一个模拟。不要when(<>>).thenReturn(<<>>)
在上面使用。
在模板是 bean 的情况下,用@MockBean
比注释它。@Autowired
推荐阅读
- javascript - Javascript 函数未运行 oninput() 或 onchange()
- visual-studio-code - 重新发布现有 VS Code 扩展所需的权限是什么以及在哪里?
- c# - 重构 C# net core 中的重复代码
- java - Java 9+ 无法获取方法局部变量的注释
- node.js - 找不到模块 - 强循环
- javascript - Puppeteer - 如何在 Firebase 云函数中使用 userDataDir?
- typescript - 我应该在哪里放置类型/接口以使它们在全球范围内可用?
- c# - 来自不同格式日期的总小时数。C#
- numpy - 如何遍历重新排列的行?
- sql - SQL Server 批量插入和查看行为