Java单元测试
二填空题1.java中用关键字申明包。2.整型数据基本类型int所对应的封装器类是。3.产生一个区间[20,100]内的随机整数的语句是。4.下面程序运行时在命令行输入M...
二填空题
1. java 中用 关键字申明包。
2.整型数据基本类型int所对应的封装器类是 。
3.产生一个区间[20,100] 内的随机整数的语句是 。
4.下面程序运行时在命令行输入MyProg me you he she。程序的运行结果是 。
class MyProg{
public static void main(String args[]){
for(int i=0;i<args.length;i++)
if(i%2==0) System.out.print(args[i]+" ");
System.out.println();
}
}
三.编一程序,从键盘输入一个字符串,将其倒序输出。比如:
输入”Hello Java”, 输出为:”avaJ,olleH”.
四、编一程序。要求
1 将自己的学号、姓名、性别写入到目录d:\Personal下的文件Info.dat中。
2 将文件Info.dat中的数据显示在屏幕上。 展开
1. java 中用 关键字申明包。
2.整型数据基本类型int所对应的封装器类是 。
3.产生一个区间[20,100] 内的随机整数的语句是 。
4.下面程序运行时在命令行输入MyProg me you he she。程序的运行结果是 。
class MyProg{
public static void main(String args[]){
for(int i=0;i<args.length;i++)
if(i%2==0) System.out.print(args[i]+" ");
System.out.println();
}
}
三.编一程序,从键盘输入一个字符串,将其倒序输出。比如:
输入”Hello Java”, 输出为:”avaJ,olleH”.
四、编一程序。要求
1 将自己的学号、姓名、性别写入到目录d:\Personal下的文件Info.dat中。
2 将文件Info.dat中的数据显示在屏幕上。 展开
2个回答
展开全部
你的理解是正确的。 通常针对一个方法会写几组这样的 带入值,复杂的方法可能更多。实际使用当中,一个方法的运行会有很多依赖关系 ,不如 需要上下文环境,需要 HTTP Requst ,Response ,数据库连接等。 如果自己写的话太复杂,所以就有 很多插件来帮忙解决外部问题。
Junit 是JAVA单元测试使用最多的插件。其他的也还有很多,基本和 Junit的思想是一样的。
请采纳答案,支持我一下。
Junit 是JAVA单元测试使用最多的插件。其他的也还有很多,基本和 Junit的思想是一样的。
请采纳答案,支持我一下。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
单元测试是编写测试代码,用来检测特定的、明确的、细颗粒的功能。单元测试并不一定保证程序功能是正确的,更不保证整体业务是准备的。
单元测试不仅仅用来保证当前代码的正确性,更重要的是用来保证代码修复、改进或重构之后的正确性。
一般来说,单元测试任务包括
接口功能测试:用来保证接口功能的正确性。
局部数据结构测试(不常用):用来保证接口中的数据结构是正确的
比如变量有无初始值
变量是否溢出
边界条件测试
比如对于Math.sqrt,给出n^2-1,和n^2+1的边界
空集合
对集合的大小应用“数值变量”的边界
调整次序:升序、降序
引用“字符变量”的边界
空字符串
对字符串长度应用“数值变量”的边界
主要边界:最小值,最大值,无穷大(对于DOUBLE等)
溢出边界(期望异常或拒绝服务):最小值-1,最大值+1
临近边界:最小值+1,最大值-1
变量没有赋值(即为NULL)
变量是数值(或字符)
变量是字符串
变量是集合
变量有规律
所有独立执行通路测试:保证每一条代码,每个分支都经过测试
Cobertura:语句覆盖
Emma: Eclipse插件Eclemma
语句覆盖:保证每一个语句都执行到了
判定覆盖(分支覆盖):保证每一个分支都执行到
条件覆盖:保证每一个条件都覆盖到true和false(即if、while中的条件语句)
路径覆盖:保证每一个路径都覆盖到
代码覆盖率
相关软件
各条错误处理通路测试:保证每一个异常都经过测试
JUNIT
JUnit是Java单元测试框架,已经在Eclipse中默认安装。目前主流的有JUnit3和JUnit4。JUnit3中,测试用例需要继承TestCase类。JUnit4中,测试用例无需继承TestCase类,只需要使用@Test等注解。
Junit3
先看一个Junit3的样例
// 测试java.lang.Math
// 必须继承TestCase
public class Junit3TestCase extends TestCase {
public Junit3TestCase() {
super();
}
// 传入测试用例名称
public Junit3TestCase(String name) {
super(name);
}
// 在每个Test运行之前运行
@Override
protected void setUp() throws Exception {
System.out.println("Set up");
}
// 测试方法。
// 方法名称必须以test开头,没有参数,无返回值,是公开的,可以抛出异常
// 也即类似public void testXXX() throws Exception {}
public void testMathPow() {
System.out.println("Test Math.pow");
Assert.assertEquals(4.0, Math.pow(2.0, 2.0));
}
public void testMathMin() {
System.out.println("Test Math.min");
Assert.assertEquals(2.0, Math.min(2.0, 4.0));
}
// 在每个Test运行之后运行
@Override
protected void tearDown() throws Exception {
System.out.println("Tear down");
}
}
如果采用默认的TestSuite,则测试方法必须是public void testXXX() [throws Exception] {}的形式,并且不能存在依赖关系,因为测试方法的调用顺序是不可预知的。
上例执行后,控制台会输出
Set up
Test Math.pow
Tear down
Set up
Test Math.min
Tear down
从中,可以猜测到,对于每个测试方法,调用的形式是:
testCase.setUp();
testCase.testXXX();
testCase.tearDown();
运行测试方法
在Eclipse中,可以直接在类名或测试方法上右击,在弹出的右击菜单中选择Run As -> JUnit Test。
在Mvn中,可以直接通过mvn test命令运行测试用例。
也可以通过Java方式调用,创建一个TestCase实例,然后重载runTest()方法,在其方法内调用测试方法(可以多个)。
TestCase test = new Junit3TestCase("mathPow") {
// 重载
protected void runTest() throws Throwable {
testMathPow();
};
};
test.run();
更加便捷地,可以在创建TestCase实例时直接传入测试方法名称,JUnit会自动调用此测试方法,如
TestCase test = new Junit3TestCase("testMathPow");
test.run();
单元测试不仅仅用来保证当前代码的正确性,更重要的是用来保证代码修复、改进或重构之后的正确性。
一般来说,单元测试任务包括
接口功能测试:用来保证接口功能的正确性。
局部数据结构测试(不常用):用来保证接口中的数据结构是正确的
比如变量有无初始值
变量是否溢出
边界条件测试
比如对于Math.sqrt,给出n^2-1,和n^2+1的边界
空集合
对集合的大小应用“数值变量”的边界
调整次序:升序、降序
引用“字符变量”的边界
空字符串
对字符串长度应用“数值变量”的边界
主要边界:最小值,最大值,无穷大(对于DOUBLE等)
溢出边界(期望异常或拒绝服务):最小值-1,最大值+1
临近边界:最小值+1,最大值-1
变量没有赋值(即为NULL)
变量是数值(或字符)
变量是字符串
变量是集合
变量有规律
所有独立执行通路测试:保证每一条代码,每个分支都经过测试
Cobertura:语句覆盖
Emma: Eclipse插件Eclemma
语句覆盖:保证每一个语句都执行到了
判定覆盖(分支覆盖):保证每一个分支都执行到
条件覆盖:保证每一个条件都覆盖到true和false(即if、while中的条件语句)
路径覆盖:保证每一个路径都覆盖到
代码覆盖率
相关软件
各条错误处理通路测试:保证每一个异常都经过测试
JUNIT
JUnit是Java单元测试框架,已经在Eclipse中默认安装。目前主流的有JUnit3和JUnit4。JUnit3中,测试用例需要继承TestCase类。JUnit4中,测试用例无需继承TestCase类,只需要使用@Test等注解。
Junit3
先看一个Junit3的样例
// 测试java.lang.Math
// 必须继承TestCase
public class Junit3TestCase extends TestCase {
public Junit3TestCase() {
super();
}
// 传入测试用例名称
public Junit3TestCase(String name) {
super(name);
}
// 在每个Test运行之前运行
@Override
protected void setUp() throws Exception {
System.out.println("Set up");
}
// 测试方法。
// 方法名称必须以test开头,没有参数,无返回值,是公开的,可以抛出异常
// 也即类似public void testXXX() throws Exception {}
public void testMathPow() {
System.out.println("Test Math.pow");
Assert.assertEquals(4.0, Math.pow(2.0, 2.0));
}
public void testMathMin() {
System.out.println("Test Math.min");
Assert.assertEquals(2.0, Math.min(2.0, 4.0));
}
// 在每个Test运行之后运行
@Override
protected void tearDown() throws Exception {
System.out.println("Tear down");
}
}
如果采用默认的TestSuite,则测试方法必须是public void testXXX() [throws Exception] {}的形式,并且不能存在依赖关系,因为测试方法的调用顺序是不可预知的。
上例执行后,控制台会输出
Set up
Test Math.pow
Tear down
Set up
Test Math.min
Tear down
从中,可以猜测到,对于每个测试方法,调用的形式是:
testCase.setUp();
testCase.testXXX();
testCase.tearDown();
运行测试方法
在Eclipse中,可以直接在类名或测试方法上右击,在弹出的右击菜单中选择Run As -> JUnit Test。
在Mvn中,可以直接通过mvn test命令运行测试用例。
也可以通过Java方式调用,创建一个TestCase实例,然后重载runTest()方法,在其方法内调用测试方法(可以多个)。
TestCase test = new Junit3TestCase("mathPow") {
// 重载
protected void runTest() throws Throwable {
testMathPow();
};
};
test.run();
更加便捷地,可以在创建TestCase实例时直接传入测试方法名称,JUnit会自动调用此测试方法,如
TestCase test = new Junit3TestCase("testMathPow");
test.run();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |