如题
不限于上文描述的问题,希望得到大家的帮助、指点。
|  |      1hubert3      2017-09-13 16:38:51 +08:00 postman | 
|  |      3willvvvv      2017-09-13 17:03:33 +08:00 robot,jmeter | 
|      4acoder2013      2017-09-13 17:11:24 +08:00 自带就够用了 ```java @RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) public class RandomPortExampleTests { @Autowired private TestRestTemplate restTemplate; @Test public void exampleTest() { String body = this.restTemplate.getForObject("/", String.class); assertThat(body).isEqualTo("Hello World"); } } ``` | 
|  |      5mahengyang      2017-09-13 18:07:56 +08:00 @acoder2013 这种不是单元测试,接口数量多的时候跑一遍测试会卡死的 | 
|  |      6mahengyang      2017-09-13 18:08:44 +08:00  4 看来好多人都不知道 spring mvc + mybatis 的工程怎么写单元测试,回头我写个博客 | 
|      7elgae OP http://www.baeldung.com/integration-testing-in-spring 暂时参考这个解决了,有同样困惑的朋友可以参考一下。不过离理想的模式还差一些,在继续摸索中。 期待您的博客 @mahengyang。 | 
|      8hantsy      2017-09-13 22:40:15 +08:00  1 https://github.com/hantsy/angularjs-springmvc-sample-boot 不过我的例子是基于 Data JPA 的。 包括不同层,各种方式的测试,Spring Mvc Test/JUnit,Mockito, JBehave, RestAssured 文档: https://hantsy.gitbooks.io/build-a-restful-app-with-spring-mvc-and-angularjs/content/testing.html | 
|      9hantsy      2017-09-13 22:48:04 +08:00  2 @elgae  总结一下,Spring REST API 测试,  1. Mock 方式,Spring 提供了 MockServlet 环境,另外可以 @MockBean 可以 Mock 一切依赖,测试 API 内部逻辑比较方便。 2. 集成测试,以 Client View 测试 API ( API 处理运行状态),Spring 提供了 TestRestTemplate,也可以用第三方 RestAssured (推荐使用,BDD 语义, 现在 Spring Rest Docs 支持这个,可以用生成带实例的 REST API 文档) 其它的,什么 JBehave,Cucumber 等,老外特别喜欢 BDD,在 Spring 中都不方便。 | 
|      10hantsy      2017-09-13 22:52:35 +08:00 另外如果熟悉 Groovy, 推荐使用 Spock,Geb,很多项目也完全用这些来写测试,JUnit 5 的一些功能像如 Nested ,Repeated,Dynamic 这些功 Spock 早有支持了。 当然现在 Spring 5 是支持 JUnit 5 的。 | 
|  |      11sunzhenyucn      2017-09-14 10:46:31 +08:00 @acoder2013 又见够用党 | 
|  |      12yasin      2017-09-14 11:45:24 +08:00 spring ui | 
|      13hantsy      2017-09-14 14:10:32 +08:00 @sunzhenyucn 够用比不用好,比用 Postman 来代替测试好。国内几乎没多少公司和程序员关心测试的重要性。 | 
|  |      15mgcnrx11      2017-09-14 16:38:17 +08:00 | 
|      16qkzeng      2017-09-14 17:38:12 +08:00 mockMvc | 
|      17hantsy      2017-09-15 09:52:33 +08:00 @mgcnrx11 Spring Boot 作了扩展,应该在 classpath 中丢入一定命名规划的 SQL 脚本就行了。 https://docs.spring.io/spring-boot/docs/current/reference/html/howto-database-initialization.html hibernate 一直都是支持 import.sql 导入数据, Spring Boot 支持 schema.sql, data.sql 等。 手动方式 org.springframework.jdbc.datasource.init.DataSourceInitializer, 可以自己在测试中使用。 另外测试 DataSource 相关的内容时,可以看看 Dbunit。 生产环境推荐使用 Flyway,Liquebase 等手动创建数据库(脚本全部针对生产环境优化),维护初始数据,支持版本升级,降级。 |