1

如何在 Spring Controller 中测试“资源”:

@RequestMapping(value = "/{query}", method = RequestMethod.GET)
public @ResponseBody String getResource(
        HttpServletRequest req, 
        HttpServletResponse res,
        @PathVariable String query,
        @RequestParam(value="param1", required = false) String param1,
        @RequestParam(value="param2", required = false) String param2) throws SomeException{
    return service.read(query);
}

由于我正在使用 App Engine 进行开发,因此我有一个这样的 JUnit 脚手架:

@ContextConfiguration(locations = { "classpath:service/client-config.xml" })
@RunWith(SpringJUnit4ClassRunner.class)
public class LocalDatastoreTest {
    private final LocalServiceTestHelper helper =
            new LocalServiceTestHelper(new LocalDatastoreServiceTestConfig());  

    @Before
    public void setUp() {
        helper.setUp();
    }

    @After
    public void tearDown() {
        helper.tearDown();
    }   

    @Test
    public void test() {

    }

}
4

1 回答 1

3

如果您有一个测试服务器启动并运行,请尝试在您的测试方法中使用 Spring RestTemplate

就像是:

RestTemplate restTemplate = new RestTemplate();
String result = restTemplate.getForObject("YOUR_URL/{query}", String.class,"myQuery");

在这里查看更多。

如果您没有服务器并且需要基本的单元测试,请尝试模拟一个。有关另一个stackoverflow 问题的更多信息。

或尝试使用https://github.com/SpringSource/spring-test-mvc

于 2012-08-08T12:11:57.507 回答