【问题标题】:java.lang.AssertionError: Status Expected :200 Actual :500java.lang.AssertionError:预期状态:200 实际:500
【发布时间】:2021-11-12 21:07:00
【问题描述】:

我写了一个小代码来测试我的控制器,并在这方面使用了 mockito。代码如下所示,语法正确

public class ApiTest {

    private MockMvc mockMvc;

    @InjectMocks
    private PersonController personController;

    @Before
    public void setUp() throws Exception {
        mockMvc = MockMvcBuilders.standaloneSetup(personController).build();
    }

    @Test
    public void testPersonController() throws Exception{

        //String jsonResult = "{\"name\": \"Müller\", \"lastName\": \"Hans\", \"zipCode\": \"67742\", \"city\": \"Lauterecken\", \"color\": \"blau\", \"id\": 1}";

        mockMvc.perform(MockMvcRequestBuilders.
                get("/api/v1/person/persons/1").
                accept(MediaType.APPLICATION_JSON)).
                andDo(print()).
                andExpect(status().isOk()).
                andExpect(MockMvcResultMatchers.jsonPath("$.id").value("1")).
                andExpect(MockMvcResultMatchers.jsonPath("$name").value("Müller"))
                .andExpect(MockMvcResultMatchers.jsonPath("$lastName").value("Hans")).
                 andExpect(MockMvcResultMatchers.jsonPath("$zipCode").value("67742"))
                .andExpect(MockMvcResultMatchers.jsonPath("$city").value("Lauterecken"))
                .andExpect(MockMvcResultMatchers.jsonPath("$color").value("blau"));

    }

}

我收到如下所示的断言错误

java.lang.AssertionError: Status 
Expected :200
Actual   :500

谁能帮我解决我哪里出错了?

【问题讨论】:

    标签: spring-boot mockito


    【解决方案1】:

    看起来您没有充分利用 Spring Boot 提供的功能来测试控制器。

    当您使用MockMvc 进行测试时:

    • @WebMvcTest注释你的类
    • 使用@MockBean 模拟此控制器所依赖的任何协作者
    • autowire MockMvc 而不是创建它
    @WebMvcTest(PersonController.class)
    public class ApiTest {
    
        @Autowired
        private MockMvc mockMvc;
    
        @MockBean
        SomeService someService; // only if controller has dependencies on any components
    
        @Test
        void aTest() {
            mockMvc.perform(...)
            // ...
        }
    
    

    【讨论】:

      猜你喜欢
      • 2018-10-23
      • 2021-08-05
      • 2017-12-25
      • 1970-01-01
      • 2017-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多