EE308_LAB 11

Rooooy_ Rooooy_ 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
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!)

...全文

相关推荐

评论
收藏 已收藏
分享
返回顶部