一.JUnit5常用注解
@Before注解用于在测试方法执行之前执行一次,可以用来设置测试环境、准备数据等。
@After注解用于在测试方法执行之后执行一次,可以用来清理测试环境、处理异常等。
@Test 表示方法是测试方法。他的职责非常单一不能生命任何属性,拓展的测试将会有Jupiter提供额外测试
@ParameterizedTest 表示方法是参数化测试。
@RepeatedTest 表示方法课重复执行。
@DisPlayName 为测试类或者测试方法设置展示名称
@BeforEach 表示在每个单元测试之前执行
@AfterEach 表示在每个单元测试之后执行
@BeforeAll 表示在所有单元测试之前执行
@AfterAll 表示在所有单元测试之后执行
@Tag 表示单元测试类别,类似于JUnit4中的@Catgories
@Disabled 表示测试类或测试方法不执行,类似于JUnit4中的@Ignore
@Timout 表示测试方法运行如果超过了指定时间将会返回错误
@ExtendWith 为测试类或测试方法提供扩展类引用
下面举例说一个例子:
整体思路:测试的时候我们一般不会在原数据库进行测试,一般会建立一个同结构同表名的测试数据库进行测试。
1.首先我们需要建立测试类:
通常在admin包下找到src下面的main包 创建与main包的同级测试包test作为测试包。
规则:测试包下面建立与main报下面相同名的包级(规则习惯);现在比如我们需要测试的是service层的代码,我们会在test下面的创建的java包里创建一个包名为service接口层的路径。并在包下创建测试类
2.一般情况@Before @After @Test 来进行单元测试
如果用的是JUnit5的情况下在测试类上不需要家@RunWith注解只需要加@SpringBootTest注解.
@SpringBootTest是JUnit5中用于测试Spring Boot应用程序的注解。它可以自动配置Spring上下文并启动嵌入式Web服务器,以便在测试期间可以轻松地访问应用程序。
3.重点:
在@Before中的数据初始化的时候我们应该怎么连接数据库:(举例)打
@Before
public void setUp() throws SQLException, SQLException {
String url ="jdbc:mysql://localhost:3306/ruoyi_test";
String user="root";
String password="password";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select count(*) from w_category");
rs.next();
int count = rs.getInt(1);
System.err.println("Table count is: " + count);
rs.close();
stmt.close();
conn.close();
}
二.@Test测试(常用断言)
Assertions.assertThrows() 测试异常情况时的断言
Assertions.assertTimeout()为测试方法设置了超时时间
版权归原作者 等天黑zz 所有, 如有侵权,请联系我们删除。