spring-boot(一)引入测试类之坑
spring-boot
spring-projects/spring-boot: 是一个用于简化Spring应用开发的框架。适合用于需要快速开发企业级Java应用的项目。特点是可以提供自动配置、独立运行和内置的Tomcat服务器,简化Spring应用的构建和部署。
项目地址:https://gitcode.com/gh_mirrors/sp/spring-boot
免费下载资源
·
1、说明
sping-boot版本号,不同版本号测试注解会不一样
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.8.RELEASE</version>
</parent>
2、必要依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--如果不同mok,可以不用引用-->
<dependency>
<groupId>org.springframework.restdocs</groupId>
<artifactId>spring-restdocs-mockmvc</artifactId>
<scope>test</scope>
</dependency>
<!--这里引入的junit是4.12版本比较高-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version> 4.12</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.3.6.RELEASE</version>
</dependency>
此时启动测试类会报错:
java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
是因为junit 版本较高的原因,有2个方法可以解决:一是将junit版本号改成4.10,二是加入下面依赖
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-all</artifactId>
<version>1.3</version>
</dependency>
3、spring-boot接口
@RestController
@RequestMapping(value = "/test/sync/")
@Slf4j
public class Controller {
@PostMapping(value = "synctest")
@ResponseBody
@AuthIgnore
public String syncTest(@RequestParam(value = "p1")String p1,@RequestParam(value = "p2",required = false)String p2,@RequestParam(value = "p3",required = false)String p3){
//do something
}
}
4、测试类
@RunWith(SpringJUnit4ClassRunner.class)
//MainrLuncher ,是spring-boot 的主启动方法
@SpringBootTest(classes = MainrLuncher.class,
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class SpringbootApplicationTest {
@Autowired
private TestRestTemplate testRestTemplate;
@Test
public void syncTest() throws Exception{
String p1 = "",p2="",p3="";
//这里把参数加到Url后面
String url = "/test/sync/synctest?p1="p1"+"&p2="+"p2"+"&p3="+p3;
Object result =
testRestTemplate.postForObject(url,params,
Object.class,params );
System.out.println(result);
}
}
5、报错
因为我用的是Idea开发工具,其中定的的model
类都是lomlock
插件的注解,直接用@Data
注解省去了getter
setter
方法,在安装完lombock
后应该还要在idea里面设置一下,但我前面没设置,在跑test的类的时候就一直报错:
setter,getter no such method
同时idea中Message
框里面也会有如下提示
Lombok Requires Annotation Processing
此时点击这个提示会弹出如下框:
只要勾选Enable annotation processiong
就可以了
GitHub 加速计划 / sp / spring-boot
73.97 K
40.4 K
下载
spring-projects/spring-boot: 是一个用于简化Spring应用开发的框架。适合用于需要快速开发企业级Java应用的项目。特点是可以提供自动配置、独立运行和内置的Tomcat服务器,简化Spring应用的构建和部署。
最近提交(Master分支:1 个月前 )
fdf24c6c
Closes gh-42976
6 天前
3c42ba8c
* pr/42974:
Fix copyright year of updated file
Polish
Closes gh-42974
6 天前
更多推荐
已为社区贡献3条内容
所有评论(0)