【软件测试】Junit入门
写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文!
本博客全网唯一合法URL:http://www.cnblogs.com/acm-icpcer/p/8931406.html
待测试的三角形类代码:
package test1; public class triangle_class1 {
public static class triangle1{
private int a,b,c;
triangle1(int x1,int x2,int x3){
set_data(x1,x2,x3);
}
//
public boolean set_data(int x1,int x2,int x3){
a=x1;
b=x2;
c=x3;
return true;
}
//
public boolean edge_legal(){
if((a>200||a<=0)||(b>200||b<=0)||(c>200||c<=0)){
return false;
}
else
return true;
}
//
public boolean is2biggerthan1(){
if((a+b>c)||(c+b>a)||(a+c>b)){
return true;
}
else
return false;
}
//
public boolean istriangle(){
if(edge_legal()&&is2biggerthan1()){
return true;
}
else
return false;
}
//
public boolean is_eage_equal(){
if((a==b)||(a==c)||(c==b)){
return true;
}
else
return false;
}
//
public int howmany_eage_equal(){
int result=0;
if(a==b)
result++;
if(a==c)
result++;
if(c==b)
result++;
return result;
}
//
public boolean is_right_angle(){
if((a*a+b*b==c*c)||(a*a+c*c==b*b)||(c*c+b*b==a*a)){
return true;
}
else
return false;
}
//
public boolean is_right_triangle(){
return is_right_angle();
}
//
public boolean is_all_edges_equal(){
if((a==b)&&(a==c)&&(c==b))
return true;
else
return false;
}
//
/*return value explanations:
*1:is not a legal triangle
*2:all edges equal triangle
*3:only 2 edges equal
*4:right angle triangle
*5:等腰直角三角形
*6:normal triangle
* */
public int finaltest(){
if(!istriangle())
return 1;
else if(is_all_edges_equal())
return 2;
else if((!is_all_edges_equal())&&is_eage_equal())
return 3;
else if(is_right_triangle())
return 4;
else if(is_eage_equal()&&is_right_triangle())
return 5;
else
return 6;
}
}
/*
public static void main(){
triangle1 obj=new triangle1(2,2,2);
System.out.println(obj.finaltest());
}*/
}
在同一个包内创建junit测试代码:
package test1; import static org.junit.Assert.*; import org.junit.Assert;
import org.junit.Test; import test1.triangle_class1.triangle1; public class triangle1Test { @Test
public void test1() {
triangle1 obj1=new triangle1(2,2,3);
assertEquals(true,obj1.edge_legal());
triangle1 obj2=new triangle1(3,4,5);
assertEquals(3,obj2.finaltest());
}
/*
public void test2() {
int[][] data={
{2,2,3},
{3,4,5},
{210,3,3}
};
for(int i=0;i<3;i++){
int x=data[i][0],y=data[i][1],z=data[i][2];
triangle1 obj1=new triangle1(x,y,z);
Assert.assertEquals(true,obj1.edge_legal());
}
}
*/
}
junit测试文件的创建方法如下:右键点击要测试的代码文件,选择new中的Junit Test Case即可创建,注意测试代码的主类名字必须是被测试类的名字+Test。
运行测试用例代码的方法:右键junit代码文件,run as:junit test即可。
若测试用例代码全部通过则显示绿条:
只要测试代码有一句没通过则显示红条,双击下方的failure trace中的详细信息可以知道具体哪一句代码没通过。
测试用例:
用例ID |
输入数据 |
预期输出 |
实际输出 |
是否通过 |
备注 |
001 |
2,2,3 |
True |
True |
Yes |
|
002 |
3,4,5 |
直角三角形 |
直角三角形 |
Yes |
|
003 |
3,3,3 |
等边三角形 |
等边三角形 |
Yes |
|
004 |
4,4,5 |
等腰三角形 |
等腰三角形 |
Yes |
|
005 |
3,4,5 |
直角三角形 |
直角三角形 |
Yes |
|
006 |
2,4,5 |
普通三角形 |
普通三角形 |
Yes |
总之,第一次使用软件测试工具来测试代码,以往测试,我一般喜欢设置断点,或者debbug调试,linux下就一般使用gdb,从来没使用过junit这样集成在开发环境里的编程测试工具。我不是很习惯这种测试工具,可能是还没用惯,感觉这类工具不实用,因为涉及到编程去进行测试的话必然会增加开发负担。
tz@COI HZAU
2018/4/24
【软件测试】Junit入门的更多相关文章
- JUnit 入门
JUNIT了解学习 转自:关于Java单元测试,你需要知道的一切 转自:JUnit 入门教程 JUnit高级用法之@RunWith @RunWith 关于@RunWith注解,官方文档是这么描述的: ...
- junit入门
一.简介JUnitJUnit是一个开源的java单元测试框架.在1997年,由 Erich Gamma 和 Kent Beck 开发完成.这两个牛人中 Erich Gamma 是 GOF 之一:Ken ...
- [置顶] JUnit入门教程(二)
一:介绍 接着上次的课程,今天我们学习JUnit4的新特性 assertThat()方法,这种方式和其余的assert方法比起来,更加接进英语. 二:分析API API中的例子: 参数 T Actua ...
- 软件测试工程师入门——Linux【使用说明书】
先来说一下linux是什么? linux 是一个开源.免费的操作系统,其稳定性.安全性.处理多并发已经得到业界的认可,目前很多中性,大型甚至是巨型项目都在使用linux. linux 内核:redha ...
- 软件测试—— junit 单元测试
Tasks: Install Junit(4.12), Hamcrest(1.3) with Eclipse Install Eclemma with Eclipse Write a java pro ...
- Android接口测试-JUnit入门
1.下载:http://www.junit.org 2.配置AndroidManifest.xml,在application节点加入 <!--使用单元测试库--> <u ...
- Junit 入门使用教程
1.Junit 是什么? JUnit是一个Java语言的单元测试框架.它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个JU ...
- Android JUnit 入门指南
自动化单元测试可以做许多的事,并帮你节省时间.它也可以被用作快速检验新建工程或进行冒烟测试.始终,单元测试是作为一种有效的.系统的检验应用程序各功能执行的方式.Android SDK支持JUnit的自 ...
- Junit入门教程
做开发的时候,完成一个接口.方法.函数或者功能等,需要测试,是否有bug,有逻辑错误.这里有两种方案测试 1. 在main中写测试方法 2. 使用开源框架,这里使用的junit main写测试方法优点 ...
随机推荐
- 【emWin】例程二十四:窗口对象——Header
简介: HEADER 小工具用于标记表格的列,本例程示例演示如何使用HEADER小工具. 触摸校准(上电可选择是否进入校准界面) 实验指导书及代码包下载: 链接:http://pan.baidu.co ...
- Java知多少(8)类库及其组织结构
Java 官方为开发者提供了很多功能强大的类,这些类被分别放在各个包中,随JDK一起发布,称为Java类库或Java API. API(Application Programming Interfac ...
- 【转】XML 特殊字符处理
from: http://gdutlzh.blog.163.com/blog/static/164746951201222934328455/ 1. 在XML文件中,如果内容包含一些特殊字符会导致XM ...
- prototype [ˈprəʊtətaɪp] 原型
<script> Array.prototype.mysort = function(){ let s = this; for(i=0;i<s.length;i++){ s[i] = ...
- Angular4学习笔记(九)- 生命周期钩子简介
简介 Angular 指令的生命周期,它是用来记录指令从创建.应用及销毁的过程.Angular 提供了一系列与指令生命周期相关的钩子,便于我们监控指令生命周期的变化,并执行相关的操作.Angular ...
- 【QT】第一个QT程序(点击按钮,显示特定文本)
1.基类选 QWidget 2.添加UI Btnshowhello 按钮 labelhello 文本标签 要注意:文本字样和对象名的区别! 对象名和UI部件是一一对应的关系. 修改对象名和修改文本字样 ...
- laravel 5 : Class 'input' not found
在配置文件中:config\app.php 加上 'Input' => Illuminate\Support\Facades\Input::class, 或者 引用 :use Illumina ...
- A股ROE连续3年超过15%的股票排名
R连续3年,12个季度的滚动ROE,都超过15%的股票排名,个股滚动ROE = 最近4个季度的归母净利润 / ((期初归母净资产 + 期末归母净资产) / 2). 查看更多ROE连续3年超过15%的股 ...
- [JS] ECMAScript 6 - Set & Map : compare with c#
Ref: Set 和 Map 数据结构 Day 0 - 1所学
- PHP实现敏感词过滤系统
PHP实现敏感词过滤系统 安装说明 安装PHP扩展 trie_filter,安装教程 http://blog.41ms.com/post/39.html 安装PHP扩展 swoole,安装教程 htt ...