EE308 LAB 11 Software Testing

The Link Your ClassEE308 MIEC
The Link of Requirement of This AssignmentLAB 11 Software Testing
The Aim of This AssignmentSoftware Testing
MU STU ID and FZU STU ID19103387_831902225

Preparation

Learn related knowledge about Junit Test for Java and Unittest for python. You can finish the following assignment or test Your Project.

Task

  1. Here are Junit Test task and Unittest task for choose. If you are good at Java , we suggest you choose the first one, if you are good at Python, then, the latter one.
  2. Follow the requests and tips, complete the test task .

Requirements

  1. You should be familiar with Junit Test or Unittest and the usage of these tools.Such as ‘assert, suite, timeout’, check problems for detail.
  2. Fix the missing codes according to requirement for every problem.

Junit Test based on Java

1. Junit assert

AssertionsTest.java

import static org.junit.Assert.*;
import org.junit.Test;
 
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); for example
		assertEquals(obj1, obj2);
		assertTrue(var1 < var2);
		assertFalse(var1 > var2);
		assertNotNull(obj3);
		assertNull(obj5);
		assertArrayEquals(arithmetic1, arithmetic2);
        /************************End***************************/
    }
 
}

2. Junit time test

TestTimeOut.java

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() {
        while(true){}
    }
    /************************End***************************/
}

3. Junit parameterized test

ParameterTest.java

import static org.junit.Assert.assertEquals; // static import

import java.util.Arrays;
import java.util.Collection;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
import step1.Calculator;

/**

 * 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********************************************/
    	Object o[][] = {{1,2,3},{3,2,1},{5,3,2},{2,3,1}};
    	return Arrays.asList(o);
		/**********************************End********************************************/

    }

    @Test
    public void testSub(){
        Calculator cal = new Calculator();
        assertEquals(cal.sub(input11, input22), expected);
    }
}

4. Junit Exception Test

JunitException.java

import static org.junit.Assert.*;

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

 
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***********************************/
	@Test(expected=IllegalArgumentException.class)
  	/************************************End************************************/

    public void checkage() {
    Person person = new Person();
    person.setAge(-1);
    }
}

5. Junit Suite Test

ParameterTest.java

import static org.junit.Assert.*;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import step3.Calculate;
import step3.CalculateTest;
import step3.Car;
import step3.CarTest;
 
/*
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)
@Suite.SuiteClasses({ CalculateTest.class, CarTest.class})
public class SuiteTest {}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值