183
社区成员
发帖
与我相关
我的任务
分享| 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 Assignment | Learn related knowledge about Junit Test for Java and Unittest for python. |
| MUID&FZUID | 19104332 & 831901214 |
| Name | Wang Ruoyu |
Of the two programming languages, Java and Python, I'm more familiar with Java, so I ended up using Juint for my tests.
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***************************/
}
}

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***************************/
}

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;
}
}

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);
}
}

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 {
}

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