添加测试
写单元测试类能降低出 bug 的概率,只要单个测试中通过,整体运行起来有七八成的概率是没问题的。再者不能写出单元测试类的代码,说明耦合度还是比较高的,需要优化。
- 先确保是否有添加依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
- 添加测试类
@RunWith(SpringRunner.class)
@SpringBootTest(classes = EndorseApplication.class)
@WebAppConfiguration
public class EndorseApplicationTests {
private MockMvc mockMvc;
@Autowired
private WebApplicationContext webApplicationContext;
private MediaType contentType = new MediaType(MediaType.APPLICATION_JSON.getType(),
MediaType.APPLICATION_JSON.getSubtype(),
Charset.forName("utf8"));
@Before
public void setup() throws Exception {
this.mockMvc = webAppContextSetup(webApplicationContext).build();
}
@Test
public void bannerControllerTest() throws Exception {
ResultActions resultActions = mockMvc.perform(MockMvcRequestBuilders.get("/banner")
.contentType(contentType))
.andExpect(MockMvcResultMatchers.status().isOk());
MvcResult mvcResult = resultActions.andReturn();
byte[] contentAsByteArray = mvcResult.getResponse().getContentAsByteArray();
System.out.println(new String(contentAsByteArray));
}
}
- 查看测试结果
在需要测试的方法名上「右键 --> run 'method'」
会在 run 窗口中出现测试结果:
- 查看测试结果
打包
打包:在pom.xml同级目录下进行如下操作
1 mvn clean package
2 cd .\target\
3 java -jar .\endorse-0.0.1-SNAPSHOT.jar
打出的jar包可以直接在阿里云上运行,注意事项:
- 1、版本号是否相同,在pom.xml中定的java版本号与阿里云上的版本号不一致会报异常
- 2、端口号是否冲突,因为是jar包直接可以运行且默认是8080端口,若阿里云上已经启动了tomcat会有端口号冲突问题。
- 3、端口是否开放,在我的情况中,修改了jar包中的端口号,而阿里云的安全组中没有开放导致访问不到。
端口号是直接在 application.properties 中修改即可
server.port=9090
上面的方式当关闭了命令号窗口,服务就会停止,为了让其能在后台运行,可以(linux下):
nohup java -jar endorse-0.0.1-SNAPSHOT.jar &
若想要在停止该服务(找到该服务,kill掉):
ps aux | grep endorse | xargs kill -9