【软件测试】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写测试方法优点 ...
随机推荐
- Shell函数的7种用法介绍
1. 在shell文件内部定义函数并引用: 复制代码代码如下: [~/shell/function]# cat factorial.sh #!/bin/bashfunction factorial{f ...
- vue手写的轮播图片,解决已经修改data中的值,页面标签已绑定,但页面没效果
1.效果 2.index.html <!DOCTYPE html> <html lang="en"> <link> <meta chars ...
- 15款基于 jQuery模态对话框
在数字世界的竞争已大大增加.这就是为什么要确保网络设计的各个方面都是一流的,这是很重要的.从布局到一些非常小的东西,比如对话框,每一件都需要设计得很好.对话框通常被忽视,但它们可能对访问者有很大的影响 ...
- el表达式字符串与变量拼接
${empty navigationMenu.pageid? '':'&mpage='.concat(navigationMenu.pageid)}
- 【iCore1S 双核心板_FPGA】例程三:计数器实验——计数器的使用
实验现象: 程序下载成功后,程序中的计数器开始计数,每次计满后,计数器清零,三色LED中红色LED的状态反转.可以看到,红色LED以一定的时间间隔闪烁. 核心源代码: //-------------- ...
- STM32 多通道ADC采样,采用Timer1进行采样率控制,利用DMA进行传输
http://blog.csdn.net/varding/article/details/17559399 http://www.51hei.com/stm32/3842.html https://w ...
- 海量数据中找top K专题
1. 10亿个数中找出最大的1000个数 这种题目就是分治+堆排序. 为啥分治?因为数太多了,全部加载进内存不够用,所以分配到多台机器中,或者多个文件中,但具体分成多少份,视情况而定,只要保证满足内存 ...
- Java知多少(69)面向字节的输入输出流
字节流以字节为传输单位,用来读写8位的数据,除了能够处理纯文本文件之外,还能用来处理二进制文件的数据.InputStream类和OutputStream类是所有字节流的父类. InputStream类 ...
- 在windows下执行./configure,make,makeinstall源码安装程序spice-gtk
使用MSYS软件,在我的上一篇博客中有软件下载地址.本文使用MSYS进行源码编译spice-gtk-0.33. 首先打开MSYS软件,进入你源码所在目录,例如:cd /c/Users/Admi... ...
- centos7 修改root密码方式
1 - 在启动grub菜单,选择编辑选项启动 2 - 按键盘e键,来进入编辑界面 3 - 找到Linux 16的那一行,将ro改为rw init=/sysroot/bin/sh 4 - 现在按下 Co ...