关于如何使用 test-mvc 进行单元测试的问题。
我有一个简单的控制器:
@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("/users/lasse"))
.andExpect(status().isOk())
.andExpect(?????????????????????????????);
}
我的目的是检查是否返回了正确的 json 代码,,,,,,
我不是亲,,,所以我还没有找到方法来代替??????????????????????????? 用代码来验证返回的字符串,但我确信必须有一种优雅的方式来做到这一点
谁能给我填?
//lg