头歌-软工导论2025-单元测试
(给个关注收藏点赞)
第一关
package step1;
import org.junit.Assert;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import step1.Calculator;
public class CalculatorTest {
// 引入Calculator对象
Calculator calcu = new Calculator();
/*
请在下面的Begin/End内补全测试函数,
来验证Calculator中的add、sub、multiply、divide函数编写是否正确
*/
/***********************Begin**************************/
@Test
public void testAdd(){
// 测试加法功能
int result = calcu.add(2, 3);
assertEquals(5, result);
}
@Test
public void testSub(){
// 测试减法功能
int result = calcu.sub(5, 2);
assertEquals(3, result);
}
@Test
public void testMultiply(){
// 测试乘法功能
int result = calcu.multiply(4, 5);
assertEquals(20, result);
}
@Test
public void testDivide(){
// 测试正常除法功能
int result = 0;
try {
result = calcu.divide(10, 2);
assertEquals(5, result);
} catch (Exception e) {
Assert.fail(\"除法测试失败,抛出异常:\" + e.getMessage());
}
}
@Test
public void testDivideByZero(){
// 测试除数为0的情况
Throwable th = null;
try {
calcu.divide(10, 0);
Assert.fail(\"应该抛出异常但未抛出\");
} catch (Exception e) {
th = e;
assertEquals(\"除数不能为0\", th.getMessage());
}
}
/************************End***************************/
}
第二关
package step2;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import java.util.Arrays;
import java.util.Collection;
import static org.junit.Assert.assertEquals;
@RunWith(Parameterized.class)
public class CalculatorTest2 {
private int a;
private int b;
private int expect;
@Parameterized.Parameters
public static Collection prepareData(){
/***********************Begin**************************/
return Arrays.asList(new Object[][]{
{2, 3, 6}, // 正数相乘
{-4, 5, -20}, // 负数×正数
{-3, -2, 6}, // 负数×负数
{0, 10, 0} // 零乘任何数
});
/************************End***************************/
}
public CalculatorTest2(int a,int b,int expect){
this.a = a;
this.b = b;
this.expect = expect;
}
@Test
public void testMultiply() {
Calculator calcu = new Calculator();
int res = calcu.multiply(a,b);
assertEquals(expect,res);
}
}
## 第三关
-
1、
下面关于关于测试的说法正确的是:A
A、
测试是为了发现程序中的错误而执行程序的过程
B、
测试是为了表明程序是正确的
C、
成功的测试是没有发现错误的测试
D、
经过了严格的测试,程序中就不可能还有没被发现的错误。
-
2、
好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。A
A、
√
B、
×
-
3、
应该远在测试开始之前就制定出测试计划。A
A、
√
B、
×
-
4、
“帕累托定律”指的是D
A、
一个设计得好的典型系统的平均扇出通常是3或4。
B、
一个人在任何时候都只能把注意力集中在(7±2)个知识块上。
C、
C.一个模块的规模最好不超过60行语句。
D、
80%的错误是由20%的原因造成的。
-
5、
为达到测试最佳效果,应由独立的第三方从事测试工作。A
A、
√
B、
×
-
-
1、
白盒测试是已经知道了产品应该具有的功能,通过测试检验是否每个功能都能正常使用。B
A、
√
B、
×
-
2、
黑盒测试是从____观点的测试,白盒测试是从____观点的测试。C
A、
开发人员、管理人员
B、
用户、管理人员
C、
用户、开发人员
D、
开发人员、用户
-
3、
白盒测试又称功能测试。B
A、
√
B、
×
-
4、
黑盒测试又称结构测试。B
A、
√
B、
×
-
5、
单元测试的目的是保证每个模块作为一个单元能正确运行。A
A、
√
B、
×