我是单元测试的新手,而且,我正努力了解应如何进行。 我有@RequestParam的一些方法,我不确定如何模拟此方法。 如果有一个示例可以应用到其他方法,那就太好了。
您能通过编写此方法的测试方法来帮助我吗?这将非常有用。
Response.SubStatusCode = 9876;
Response.StatusCode = 54321;
谢谢。
答案 0 :(得分:0)
您可以使用@Mock
和@InjectMocks
批注。有了它,您就可以向控制器注入模拟了。
@Mock
PlayerService playerServiceMock;
然后在Mockito的when().then()
内使用带有@Before
批注的测试或方法:
when(playerServiceMock.updatePassword(anyString(), anyString())).thenReturn(playerEntity);
对bundle.getString("put_player")
也可以这样做。
答案 1 :(得分:0)
希望您正在使用Mockito。您可以尝试以下代码,需要添加所有导入
@RunWith(MockitoJUnitRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.MOCK)
public class YourClassNameTest {
@Autowired
MockMvc mockMvc;
@InjectMocks
YourClassName yourClassName;
@Mock
PlayerService playerService;
@Before
public void Setup() {
mockMvc = MockMvcBuilders.standaloneSetup(yourClassName);
}
@Test
public void updatePlayerPasswordTest() throws Exception {
PlayerEntity player = new PlayerEntity();
// set some date if you want
Mockito.when(playerService.updatePassword(anyString(), anyString())).thenReturn(player);
RequestBuilder requestBuilder = MockMvcRequestBuilders
.get("/player/update-password?token=abc&password=test")
.accept(MediaType.APPLICATION_JSON);
mockMvc.perform(requestBuilder).andExpect(MockMvcResultMatchers.status().isCreated());
}
}