java - 预计还有 1 项未满足的期望。执行了 0 个请求

标签 java spring rest testing

我的 spring 集成应用程序有以下测试类。

@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(<<>>)在上面。

@MockBean 对其进行注释比@Autowired如果模板是一个 bean。

关于java - 预计还有 1 项未满足的期望。执行了 0 个请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53913672/

相关文章:

java - Rideable Controlled Entity 我的世界

java - 在 JavaPreparedStatement 中使用问号

java - 为什么这会导致 tomcat 显示 jsp 源而不是实际呈现 html?

WCF:使用 OperationContext 区分 REST 和 SOAP 请求

javascript - Firebase + REST + jquery 产生奇怪的键

java - Eclipse 窗口生成器 Java 1.6 1.7

java - 一些字符(例如括号)将在 Spring @RequestBody 中进行编码。如何解码它们?

java - LocaleChangeInterceptor.preHandle 中的对象处理程序有什么用

xml - java.lang.NoSuchMethodError : org. springframework.util.ClassUtils.forName(Ljava

java - AlertDialog.Builder 中的 Android stopService()