If a developer wants to test methods or processing logic, we can use the JUnit framework to test our backend code. This content uses the Java language to create a simple demo to show how to use the assert parameter to complete unit tests.
1.For Mave project - add dependency
add JUnit dependency:if you are using Maven,you can add the dependency to your pom.xml file
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.8.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.8.2</version>
<scope>test</scope>
</dependency>
2.Creat a Java Demo to be test
public class UnitTestDemo {
public int add(int i,int j){
return i+j;
}
public boolean compareValue(int i, int j){
return i > j;
}
public int addAndThowException(int i, int j){
if(i!=0 || j!=0) {
return i+j;
}else {
throw new RuntimeException();
}
}
public void displayMsg(int i){
if(i==1) {
System.out.println("When i euqals 1 display this sentence");
}
}
}
3.Creat a JUnit test class
@BeforeEach: executed before each test method
@AfterEach: executed after each test method
@BeforeAll: executed once before all test methods
@AfterAll: executed once after all test methods
@Test: is used to mark test methods
public class UnitTestDemoTests {
private static UnitTestDemo unitTestDemo;
private static final ByteArrayOutputStream outContent = new ByteArrayOutputStream();
@BeforeAll
public static void createCommand() {
unitTestDemo = new UnitTestDemo();
System.setOut(new PrintStream(outContent));
}
@Test
public void testNull() {
Object obj = new Object();
assertNotNull(obj);
obj = null;
assertNull(obj);
}
@Test
public void testArrayEquals() {
int[] expected = {1, 2, 3};
int[] actual = {1, 2, 3};
assertArrayEquals(expected,actual);
List<Integer> expectedList = Arrays.stream(expected).boxed().collect(Collectors.toList());
List<Integer> actualList = Arrays.stream(actual).boxed().collect(Collectors.toList());
assertIterableEquals(expectedList,actualList);
}
@Test
public void add_testEquals() {
int result = unitTestDemo.add(2,3);
assertEquals(5,result);
}
@Test
public void compareValue_testResult() {
boolean equalsTrue = unitTestDemo.compareValue(3,2);
assertTrue(equalsTrue);
boolean equalsFalse = unitTestDemo.compareValue(2,3);
assertFalse(equalsFalse);
}
@Test
public void add_testNotEquals() {
int result = unitTestDemo.add(2,3);
assertNotEquals(4,result,"2 + 3 不应等于 4");
}
@Test
public void addAndThowException_testEquals() {
int result = unitTestDemo.addAndThowException(2,3);
Assertions.assertDoesNotThrow(() -> result);
assertEquals(5,result,"2 + 3 应等于 5");
}
@Test
public void addAndThowException_testThowException() {
int i=0,j=0;
assertThrows(RuntimeException.class,() -> unitTestDemo.addAndThowException(i,j));
}
@Test
public void displayMsg_test() {
Assertions.assertDoesNotThrow(() -> unitTestDemo.displayMsg(1));
assertTrue(
outContent.toString()
.endsWith("When i euqals 1 display this sentence" + System.lineSeparator())
);
assertEquals("When i euqals 1 display this sentence"
+System.lineSeparator(), outContent.toString());
}
}