1
关于如何使用test-mvc进行单元测试的问题。如何在使用Spring和test-mvc时验证Web响应
我有一个简单的控制器:
@Controller
@RequestMapping("/users")
public class UserController {
private UserService business;
@Autowired
public UserController(UserService bus)
{
business = bus;
}
@RequestMapping(value="{id}", method = RequestMethod.GET)
public @ResponseBody User getUserById(@PathVariable String id) throws ItemNotFoundException{
return business.GetUserById(id);
}
((我的想法是,以保持控制器,因此薄越好)。)
为了测试这个控制器我试图做这样的事情。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:mvc-dispatcher-servlet.xml"})
public class UserControllerTest extends ControllerTestBase {
UserService mockedService;
@Before
public void Setup()
{
MockitoAnnotations.initMocks(this);
mockedService = mock(UserService.class);
}
@Test
public void ReturnUserById() throws Exception{
User user = new User();
user.setName("Lasse");
stub(mockedService.GetUserById("lasse")).toReturn(user);
MockMvcBuilders.standaloneSetup(new UserController(mockedService)).build()
.perform(get("https://stackoverflow.com/users/lasse"))
.andExpect(status().isOk())
.andExpect(?????????????????????????????);
}
我的目的是检查返回正确的JSON代码,,,,,,
我不是更换一个亲,,,所以我还没有找到一种方法????? ??????????????????用代码来验证返回的字符串,但我确信必须有一个优雅的方式来做到这一点
任何人都可以填写我吗?
// LG
好吧,坦克。有一些我试过使用的叫做jsonPath的东西。不过,没有运气,玛比我是完全错误的方式? – 2012-07-25 15:19:58
是的,有,我已经添加了一个更新的答案与JSON路径 – 2012-07-25 16:14:19
再次感谢,这是如此优雅,它可以得到我想:) – 2012-07-27 12:32:02