软件测试2019:第二次作业
对于Junit 的理解含义
简介:Junit是一个Java单元测试框架,它有自己的Junit扩展生态圈,目前多数的Java开发环境都已经集成了Junit作为单元集成的工具。其实所谓的Junit测试也就是白盒测试,是在极限编程和重构被极力推荐使用的工具,因为在实现自动单元测试的情况下可以大大的提高开发的效率。
现在我来简单的说说极限编程和重构的相关定义
极限编程:要求在编写程序之前先进行测试,这样可以强制你在写代码之前好好思考代码,否则导致编写的代码不稳定使得你需要同时维护测试代码和实际代码,使得后台的工作量大大增加,极限编程的工作步骤如下:构思-编写测试代码-编写代码-测试,这样做的好处在于编写以后的代码如果发现问题可以很快的追踪到问题的源点,减小回归错误的纠正难度。
重构的定义:其好处和极限编程的特点大致一样,减少回归错误造成的时间损耗
下面介绍Junit 的相关特性
Junit是一个Java开放源代码的测试框架,用于编写和运行可重复的测试,他是用于单元测试框架体系xUnit的一个实例,其特性包含:
1.用于测试期望结果的断言
2.用于共享共同测试数据的测试工具
3.用于方便的组织和运行测试的测试套件
4.图形和文本的测试运行器
单元测试的相关介绍:单元测试是指对软件中最小可测试单元进行检查和验证,一般来说,要根据实际情况去判定其含义,单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔的情况下进行测试,经常与单元测试联系起来的另外一些开发活动包括代码走读,静态分析和动态分析,指定某个特定函数的行为。
Junit的对象类包括ssert,Test,TestCase,TestSuite,TestResult等等
感想: Junit本身是不支持普通的多线程测试的,Junit只管自己的运行,当Junit执行完毕后,就会关闭程序,不会关心是否还有自己启动的后台线程在运行。当Junit运行完毕后,如果后台线程还没有执行完毕,那么也就不会再执行了。测试多线程程序,还是用main()函数比较好。
编写工具类的代码如下
public final class Calculate {
private Calculate(){
throw new Error
}
public static int add(int a,int b){
return a + b;
}
public static int substract(int a,int b){
return a - b;
}
public static int multiply(int a,int b){
return a * b;
}
public static int divide(int a,int b){
return a / b;
}
}
测试类main()函数代码如下:
public final class Calculate {
private Calculate(){
throw new Error
}
public static int add(int a,int b){
return a + b;
}
public static int substract(int a,int b){
return a - b;
}
public static int multiply(int a,int b){
return a * b;
}
public static int divide(int a,int b){
return a / b;
}
}