EE308_LAB 11

Rooooy_ 2021-12-15 14:32:24
The Link Your Class
https://bbs.csdn.net/forums/MUEE308FZ?category=0

The Link of Requirement of This Assignment

https://bbs.csdn.net/topics/603748107
The Aim of This AssignmentLearn related knowledge about Junit Test for Java and Unittest for python.
MUID&FZUID19104332 & 831901214
NameWang Ruoyu

 

1. Introducion

Of the two programming languages, Java and Python, I'm more familiar with Java, so I ended up using Juint for my tests.

2. Solving process

(1) Junit assert

Code:

package com.Lab10;

import org.junit.Test;
import static org.junit.Assert.*;
public class AssertionsTest {
    String obj1 = "junit";
    String obj2 = "junit";
    String obj3 = "test";
    String obj4 = "test";
    String obj5 = null;
    int var1 = 1;
    int var2 = 2;
    int[] arithmetic1 = { 1, 2, 3 };
    int[] arithmetic2 = { 1, 2, 3 };

    @Test
    public void test() {
        // add assert test code between Begin and End, no other change allowed
        /***********************Begin**************************/
        assertTrue(var1 < var2);
        assertTrue(obj1 == obj2);
        assertTrue(obj3 == obj4);
        assertNull(obj5);
        assertArrayEquals(arithmetic1,arithmetic2);
        /************************End***************************/
    }


}

Run:

(2) Junit time test

Code:

package com.Lab10;

import org.junit.Test;

public class TestTimeOut {

    // Fix timeout assert in Test function below. Test fail if running 1000ms longer
    /***********************Begin**************************/
    @Test(timeout = 1000)
    public void test() {
        int a=0;
        while(a!=-1){
            a+=1;
        }
    }
    /************************End***************************/
}

 Run:

 

 (3)Junit parameterized test

Code:

package com.Lab10;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;

import java.util.Arrays;
import java.util.Collection;

import static org.junit.Assert.assertEquals;
/**
 * JUnit4 parameterized test
 */
@RunWith(Parameterized.class)
public class ParameterTest {
    private int input11;
    private int input22;
    private int expected;
    public ParameterTest(int input11, int input22, int expected){
        this.input11 = input11;
        this.input22 = input22;
        this.expected = expected;
    }
    @Parameters
    public static Collection prepareData(){
        /**
         *the type of the two-dimension array must be Object.
         *data in the two-dimension array is ready of test sub() in Calculator
         * every element in the two-dimension array should corresponds to position of parameters in construct method ParameterTest
         *let the third element equals the first subtract the second element according to parameters’ postion
         *fix missing codes under ‘Begin’ and above ‘End’,pass 4 groups of parameters to test sub method in Calculator is right or not
         *tip:only two lines of codes
         */
        /*********************************Begin********************************************/
        return Arrays.asList(new Integer[][]{
                {3,2,1},
                {6,4,2},
                {4,5,6},
                {1,2,3},
        });
        /**********************************End********************************************/
    }
    @Test
    public void testSub(){
        Calculator cal = new Calculator();
        assertEquals(cal.sub(input11, input22), expected);
    }
}
package com.Lab10;

// Calculator.java Junit Parameterized Test
/**
 * Mathematical Calculation  subtract
 */
public class Calculator {
    public int sub(int a, int b) {
        return a - b;
    }
}

Run:

 (4)Junit Exception Test

 Code:

 

package com.Lab10;

import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;

public class JunitException {

    /**
     *add a line of annotation in Begin/End,check the age of Person Object is legal or not.     *throw IllegalArgumentException exception
     */
    /***********************************Begin***********************************/
    @Rule
    public ExpectedException thrown = ExpectedException.none();

    @Test
    public void lab10Test(){
        thrown.expect(IllegalArgumentException.class);
        checkage();
    }
    /************************************End************************************/
    public void checkage() {
        Person person = new Person();
        person.setAge(-1);
    }
}

Run:

(5)Junit Exception Test

 Code:

package com.Lab10;

import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;

/*
add two lines of annotations. Implement Suite Test of CalculateTest and CarTest
Suite Test codes must next to Class SuiteTest, no shift allowed!
*/
//**************************************************************
@RunWith(Suite.class)
@SuiteClasses({CalculateTest.class, CarTest.class})
public class SuiteTest {

}

Run:

3. Conclusion

Mastering unit testing can greatly reduce the time we spend debugging and improve the overall quality of our code. (And look professional!)

...全文
155 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

183

社区成员

发帖
与我相关
我的任务
社区描述
福州大学 梅努斯国际工程学院 软件工程 教学
软件工程 高校
社区管理员
  • 单步调试
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧