Home Java Javagetting Started Use of white-box testing framework (JUnit)

Use of white-box testing framework (JUnit)

Nov 29, 2021 am 09:33 AM
junit

Junit framework:

Junit is an open source java unit testing framework.

Today we will introduce junit5. junit5 consists of three different sub-project modules, including Junit Platform, Junit Jupiter and Junit Vintage. It supports Java 8 and above. The editor I use here is IntelliJ IDEA. You only need to check the final result to know whether the method interface of the entire project is smooth. Each unit test case is relatively independent, started by Junit, and automatically called. No need to add additional calling statements.

Adding, deleting, and blocking test methods will not affect other test methods.

Junit is mainly used for white box testing. The steps for white box testing are as follows:

1. Test planning stage: Develop the test schedule according to the requirements specification.

2. Test design stage: According to the function of the code, test cases are manually designed for basic functional testing. According to the programming instructions, the software structure is divided and test cases are designed according to certain standardized methods.

3. Test execution phase: input test cases and get test results.

4. Test summary stage: Compare the test results with the expected results of the code, analyze the cause of the error, find and solve the error.

Next, let’s introduce the annotations inside:

@Test: Represents the test method without declaring any attributes.

@ParameterizedTest: Indicates that the method is a test method. In addition, this annotation can also allow a test method to be run multiple times using different people.

@RepeatedTest: This annotation allows the test method to customize the number of repeated runs.

@TestFactory: Indicates that a method is based on a data-driven dynamic test data source.

@Displayname: Declares a custom display name for the test class or test method.

@BeforeEach: Indicates that the specified method is run before each test method is run.

@AfterEach: Indicates that the specified method will be run after each test method is run.

@BeforeAll: Executed before all test methods of the current class, this method can contain some initialization code.

@AfterAll: Executed after all test methods of the current class.

@Disabled: Indicates that a test class or method is invalid.

Assertion:

Fail: The assertion test failed.

AssertTrue/asserFalse: Assert true or false.

AssertNull/assertNotNull: Assert is null or not null.

assertEquals/assertNotEquals: Assert that two values ​​are not equal.

AssertArrayEquals: Assert that all array elements are the same.

AssertSame/assertNotSame: Assert whether two objects are the same.

AssertThrows/assertDoesNotThrow: Assert whether an exception is thrown.

AssertAll: Assert that multiple conditions are met;

Next we create a class and create several methods:

package test;//包机制
import java.lang.reflect.Array;
public class MixedOperation {
    public int mixeOperation(int x,int y){
        return division((x+y),y);
    }
    public int division(int x,int y){
        int result=(x/y);
        return result;
    }
    public static void main(String[] args) {
      MixedOperation mixedOperation=new MixedOperation();
      System.out.println(mixedOperation.mixeOperation(5,1));
    }
}
Copy after login

We create a class named MixedOperation;

package test;
import org.junit.jupiter.api.*;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;
public class MixedOperationTest {
    private MixedOperation mixedOperation;
    @BeforeEach
    public void init(){
      mixedOperation=new MixedOperation();
    }
    @Test
    public void successTest(){
        System.out.println("run a test:x=4,y=2");
        int result=mixedOperation.mixeOperation(4,2);
        Assertions.assertEquals(3,result);
    }
   /* @DisplayName("失败")
    public void errorTest(){`
        System.out.println("run a test:x=4,y=0");
        ArithmeticException exception=new ArithmeticException(
                ArithmeticException.class -> {
            mixedOperation.mixeOperation(4, 0);
        }
        );
    }*/
    @Disabled("参数")
    @Test
    @DisplayName("参数")
    @ParameterizedTest
    @CsvSource({"6,3,3","5,2,3","6,2,4"})
    public void caTest(int x,int y,int excepted){
        System.out.println("run a test :x="+x+"y="+y);
        System.out.println(excepted);
        int t= mixedOperation.mixeOperation(x,y);
        Assertions.assertEquals(excepted,t);
    }
    @Disabled
    @Test
    public void  Next(){
       System.out.println("抛出一个异常");
       System.out.println(Assertions.assertThrows(IllegalArgumentException.class, () ->mixedOperation.mixeOperation(2,0)));
    }
    @Disabled
    @Test
    void error(){
        Assertions.assertThrows(Exception.class,()->{Assertions.assertEquals(1,0);});
    }
    @Test
    void sure(){
        int result=mixedOperation.mixeOperation(4,2);
        Assertions.assertTrue(3==result);//断言相等
    }
}
Copy after login

This is a test class we created called MixedOperationTest;

Related recommendations: "java Video Tutorial"

The above is the detailed content of Use of white-box testing framework (JUnit). For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat Commands and How to Use Them
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

JUnit Unit Testing Framework: A Beginner's Tutorial JUnit Unit Testing Framework: A Beginner's Tutorial Apr 18, 2024 pm 01:51 PM

JUnit is a unit testing framework for Java that provides concise tools to test application components. After installing the dependencies, you can test a class by writing a unit test class that contains the @Test annotation and verify expected and actual values ​​using assertion methods such as assertEquals. JUnit provides many features such as prepare methods, failure messages, and timeout mechanisms.

How are annotations used for test methods in the JUnit framework? How are annotations used for test methods in the JUnit framework? May 06, 2024 pm 05:33 PM

Annotations in the JUnit framework are used to declare and configure test methods. The main annotations include: @Test (declaration of test methods), @Before (method run before the test method is executed), @After (method run after the test method is executed), @ BeforeClass (method that runs before all test methods are executed), @AfterClass (method that runs after all test methods are executed), these annotations help organize and simplify the test code, and improve the reliability of the test code by providing clear intentions and configurations. Readability and maintainability.

JUnit unit testing framework: advantages and limitations of using it JUnit unit testing framework: advantages and limitations of using it Apr 18, 2024 pm 09:18 PM

The JUnit unit testing framework is a widely used tool whose main advantages include automated testing, fast feedback, improved code quality, and portability. But it also has limitations, including limited scope, maintenance costs, dependencies, memory consumption, and lack of continuous integration support. For unit testing of Java applications, JUnit is a powerful framework that offers many benefits, but its limitations need to be considered when using it.

Usage of JUnit unit testing framework in multi-threaded environment Usage of JUnit unit testing framework in multi-threaded environment Apr 18, 2024 pm 03:12 PM

There are two common approaches when using JUnit in a multi-threaded environment: single-threaded testing and multi-threaded testing. Single-threaded tests run on the main thread to avoid concurrency issues, while multi-threaded tests run on worker threads and require a synchronized testing approach to ensure shared resources are not disturbed. Common use cases include testing multi-thread-safe methods, such as using ConcurrentHashMap to store key-value pairs, and concurrent threads to operate on the key-value pairs and verify their correctness, reflecting the application of JUnit in a multi-threaded environment.

Application of JUnit unit testing framework in Spring projects Application of JUnit unit testing framework in Spring projects Apr 18, 2024 pm 04:54 PM

JUnit is a widely used Java unit testing framework in Spring projects and can be applied by following steps: Add JUnit dependency: org.junit.jupiterjunit-jupiter5.8.1test Write test cases: Use @ExtendWith(SpringExtension.class) to enable extension, use @Autowired inject beans, use @BeforeEach and @AfterEach to prepare and clean, and mark test methods with @Test.

What are the best practices for JUnit unit testing framework in Java? What are the best practices for JUnit unit testing framework in Java? Apr 18, 2024 pm 09:03 PM

Following the best practices of the JUnit unit testing framework enables effective code verification: Write independent tests Place tests in appropriate places Use assertions to validate results wisely Follow naming conventions (starting with test) Write negative tests Use Mocking and Stubbing to isolate dependencies Avoid using static variables to remove duplicate code and automate test execution

JUnit unit testing framework: Tips for running test cases in debug mode JUnit unit testing framework: Tips for running test cases in debug mode Apr 18, 2024 pm 03:54 PM

In JUnit, you can run test cases in debug mode by associating the BlockJUnit4ClassRunner runner using the @RunWith annotation. Set breakpoints to pause execution and examine variables. Use System.out.println() to output information to track code execution. Verify expected and actual values ​​using JUnitAssert assertion methods.

JUnit unit testing framework: A guide to solving common memory leak problems JUnit unit testing framework: A guide to solving common memory leak problems Apr 18, 2024 pm 04:51 PM

The JUnit unit testing framework can effectively solve common memory leak problems. Common leak issues include persistent static variable references and unclosed resources. JUnit provides leak detectors and tools to analyze memory usage to locate the source of leaks. Solutions include using local variables, weak references, closing resources correctly, and using try-with-resources statements. By following these guidelines, developers can create reliable and stable JUnit testing environments.

See all articles