Junit4 套件测试
1 概述
在本指南中,我们将学习如何一次运行多个测试类。将Suite用作运行程序可以使您手动构建一个包含许多类测试的套件。它等效于JUnit 3.8.x静态Test suite()方法的JUnit 4。要使用它,请使用@RunWith(Suite.class)和@SuiteClasses(TestClass1.class,...)注释类。当您运行此类时,它将运行所有套件类中的所有测试。
让我们创建一个简单的maven项目并演示Suite的用法。
让我们创建一个简单的maven项目并演示Suite的用法。
2 创建简单的Maven项目
让我们创建一个简单的Maven项目。通过执行以下命令创建简单的Maven项目:
mvn archetype:generate
-DgroupId=org.yourcompany.project
-DartifactId=application
在maven项目构建成功之后,maven将创建一个默认的文件夹结构。
3 项目包装结构
- src/main/java : Java源代码包和类
- src/main/resources :非Java资源,例如属性文件和Spring配置
Test
- src/test/java :测试源代码包和类
- src/test/resources :非Java资源,例如属性文件和Spring配置
让我们根据以下包装结构创建包装和类。
── pom.xml
└── src
├── main
│ ├── java
│ │ └── com
│ │ └── yiidian
│ │ └── junit
| │ └── Login.java
| │ └── LoginService.java
| │ └── User.java
| │ └── UserService.java
│ ├── resources
└── test
├── java
│ └── com
│ └── yiidian
│ └── junit
│ └── LoginServiceTest.java
│ └── UserServiceTest.java
│ └── SuiteTest.java
└── resources
4 更新pom.xml文件中的JUnit依赖关系
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
让我们创建一个登录服务和用户服务功能,然后将这两个功能作为一个套件进行测试。
5 创建LoginService.java和LoginServiceTest.java
5.1 LoginService.java
/**
* 一点教程网: http://www.yiidian.com
*/
public class Login {
private String userName;
private String password;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
package com.developersguide.junit.suites;
public class LoginService {
public boolean authenticate(String userName, String password){
if("demo".equals(userName) && "demo".equals(password)){
return true;
}
return false;
}
}
5.2 LoginServiceTest.java
package com.yiidian.junit.suites;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.assertFalse;
import org.junit.Test;
/**
* 一点教程网: http://www.yiidian.com
*/
public class LoginServiceTest {
@Test
public void authenticateSuccessTest(){
LoginService login = new LoginService();
assertTrue("authenticate failed", login.authenticate("demo", "demo"));
}
@Test
public void authenticateFailTest(){
LoginService login = new LoginService();
assertFalse("authenticate failed", login.authenticate("demo1", "demo"));
}
}
输出结果为:
6.创建UserService.java和UserServiceTest.java
6.1 UserService.java
/**
* 一点教程网: http://www.yiidian.com
*/
public class User {
private int id;
private String name;
public User(int id,String name){
this.id = id;
this.name = name;
}
}
package com.developersguide.junit.suites;
import java.util.ArrayList;
import java.util.List;
public class UserService {
private List<User> list = new ArrayList<User>();
public User createUser(User user){
list.add(user);
return user;
}
public List<User> getUsers(){
return this.list;
}
public void deleteUser(User user){
list.remove(user);
}
}
6.2 UserServiceTest.java
package com.yiidian.junit.suites;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.util.List;
import static org.junit.Assert.assertEquals;
import org.junit.Before;
import org.junit.Test;
public class UserServiceTest {
private User user;
private UserService userService = new UserService();
@Before
public void setup(){
user = new User(100, "ramesh");
}
@Test
public void userServiceTest(){
userService.createUser(user);
List<User> users = userService.getUsers();
assertEquals(1, users.size());
userService.deleteUser(user);
users = userService.getUsers();
assertEquals(0, users.size());
}
}
7 创建测试套件
package com.yiidian.junit.suites;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
/**
* 一点教程网: http://www.yiidian.com
*/
@RunWith(Suite.class)
@Suite.SuiteClasses({
LoginServiceTest.class,
UserServiceTest.class,
})
public class SuiteTest {
}
8 结论
在本指南中,我们学习了如何通过创建Maven项目来为多个测试类创建测试套件。
热门文章
优秀文章