有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

用JUnit测试Spring控制器

如何在Spring控制器中测试“资源”:

@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() {

    }

}

共 (1) 个答案

  1. # 1 楼答案

    如果你有一个测试服务器正在运行, 尝试在测试方法中使用Spring RestTemplate

    比如:

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

    请参阅更多here

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

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