提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
在实际的开发过程中,有一个很重要的观点就是“约定大于配置”,通过遵照这个观念,我们可以减少自己所做决定的数量,我们只需要去规定那些不合规范的部分即可,从而提高了开发效率
一、多模块构建项目的规范
先new一个project
再在刚刚的project下面new 所需的module
(GroupId是在这里
,是java下的包名,而ArtifactId和name一样,是项目名)
建好之后如图
然后开始加入pom依赖,父项目这样加,加这三个
然后在要运行的项目主体模块中这样加,先连接兄弟模块
再加测试类(test、单元测和接口测)
再加打包文件,注意这里是要运行的模块所以这样加
这部分的打包依赖要加到非运行部分的模块里
<build>
<plugins>
<!-- 编译源代码插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<!-- 打包源代码插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.2.1</version>
<configuration>
<attach>true</attach>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
这里截取一部分,别的依赖目前不用加
在common类中写一个简单的返回类型,这里取名叫做HttpResp
内部这样写
在domain中定义一个类
接着在需要运行模块中的resources包下面加一个config文件夹,里面加入application.yml等一群配置文件(其中dev表示开发版本,test是测试版本,prod是上线版本,我们最常用的就是dev版本)内部配置如下
这里就配置好了
二、接口测试
配置好后写接口TypeController层,这里进行接口测试
测试网址如下
测试方式如下
可以看到测试成功了
其余方法同理
三、压力测试
使用的是这个软件,这里如果没办法双击打开的话就说明Java环境变量没配好,需要去配置一下
双击打开软件,开始设置参数
点头上的绿色三角开始测试
这里我没有用上面的参数,我用的是下面的参数测试模拟一个10000人抢100本书的场景
结果如下,可以看到并没有出现两人同时强一张票的现象
其实我最开始压力测试的时候是有出现两人同抢一张票的现象,那我是如何解决的呢?
可以直观的看到,我在这里加了synchronized线程守护机制
三、单元测试
开发人员对象所属模块的后台测试,对业务层进行测试
引入单元测试依赖
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
建立单元测试用例
@SpringBootTest
@RunWith(SpringJUnit4ClassRunner.class)
public class EatImplTest {
@Autowired
private IEat ie;
@Test
public void eat() {
int sum = ie.eat();
assertEquals(5060,sum);
}
}
总结
这里我们了解并练习了接口测试、压力测试与单元测试