Java Demo - JUnit :Unit Test(Assert Methods)

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

XML 复制代码
<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

java 复制代码
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

java 复制代码
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());

    }

}
相关推荐
Hx_Ma161 分钟前
测试题(一)
java
w***29853 分钟前
Knife4j文档请求异常(基于SpringBoot3,查找原因并解决)
java·服务器·数据库
yaoxin5211231 小时前
325. Java Stream API - 理解 Collector 的三大特性:助力流处理优化
java·开发语言
RFG20127 小时前
20、详解Dubbo框架:消费方如何动态获取服务提供方地址?【微服务架构入门】
java·人工智能·后端·微服务·云原生·架构·dubbo
zjttsh8 小时前
Linux下安装Redis
java
TimberWill9 小时前
SpringBoot整合Srping Security实现权限控制
java·spring boot·后端
Renhao-Wan10 小时前
Java 算法实践(四):链表核心题型
java·数据结构·算法·链表
_codemonster11 小时前
JavaWeb开发系列(六)JSP基础
java·开发语言
万邦科技Lafite11 小时前
淘宝店铺所有商品API接口实战指南
java·数据库·mysql
jjjxxxhhh12312 小时前
【加密】-AES与对称加密
java·服务器·网络