写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.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入门的更多相关文章

  1. JUnit 入门

    JUNIT了解学习 转自:关于Java单元测试,你需要知道的一切 转自:JUnit 入门教程 JUnit高级用法之@RunWith @RunWith 关于@RunWith注解,官方文档是这么描述的: ...

  2. junit入门

    一.简介JUnitJUnit是一个开源的java单元测试框架.在1997年,由 Erich Gamma 和 Kent Beck 开发完成.这两个牛人中 Erich Gamma 是 GOF 之一:Ken ...

  3. [置顶] JUnit入门教程(二)

    一:介绍 接着上次的课程,今天我们学习JUnit4的新特性 assertThat()方法,这种方式和其余的assert方法比起来,更加接进英语. 二:分析API API中的例子: 参数 T Actua ...

  4. 软件测试工程师入门——Linux【使用说明书】

    先来说一下linux是什么? linux 是一个开源.免费的操作系统,其稳定性.安全性.处理多并发已经得到业界的认可,目前很多中性,大型甚至是巨型项目都在使用linux. linux 内核:redha ...

  5. 软件测试—— junit 单元测试

    Tasks: Install Junit(4.12), Hamcrest(1.3) with Eclipse Install Eclemma with Eclipse Write a java pro ...

  6. Android接口测试-JUnit入门

    1.下载:http://www.junit.org 2.配置AndroidManifest.xml,在application节点加入 <!--使用单元测试库-->        <u ...

  7. Junit 入门使用教程

    1.Junit 是什么? JUnit是一个Java语言的单元测试框架.它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个JU ...

  8. Android JUnit 入门指南

    自动化单元测试可以做许多的事,并帮你节省时间.它也可以被用作快速检验新建工程或进行冒烟测试.始终,单元测试是作为一种有效的.系统的检验应用程序各功能执行的方式.Android SDK支持JUnit的自 ...

  9. Junit入门教程

    做开发的时候,完成一个接口.方法.函数或者功能等,需要测试,是否有bug,有逻辑错误.这里有两种方案测试 1. 在main中写测试方法 2. 使用开源框架,这里使用的junit main写测试方法优点 ...

随机推荐

  1. 【经验分享】我经历的几门MOOC

    这半年来,从1月初到6月底,在coursera上注册了4们有关数据分析/挖掘的课程.这些课程都是利用业余时间学习,每周基本上花5个小时左右.其中通过了3门,注销了一门.感觉还是学到了一些东西. 第一门 ...

  2. Socket网络编程--聊天程序(1)

    很早的一段时间,看了APUE和UNPv1了解了网络编程,但是但是只是看而已,没有具体的实践,趁现在没有什么事做,就来实践了解一下网络编程.写博客保存下来,方便以后用到的时候可以查到. 此次的聊天程序是 ...

  3. Socket网络编程--网络爬虫(3)

    上一小节我们实现了从博客园的首页获取一些用户的用户名,并保存起来.接下来的这一小节我将对每个用户名构建一个用户的博客主页,然后从这个主页获取所有能获取到的网页,网页的格式现在是http://www.c ...

  4. function 与 => 的区别

    在JS中,箭头函数并不是简单的function(){}匿名函数的简写语法糖,实际上,箭头函数和匿名函数有个明显的区别:箭头函数内部的this是词法作用域,在编写函数时就已经确定了.而匿名函数的this ...

  5. elast alert

    参考文档:<elast alert> 假设报错的内容为: ceph-rest-api service down At least 1 events occurred between 201 ...

  6. pandas DataFrame applymap()函数

    pandas DataFrame的 applymap() 函数可以对DataFrame里的每个值进行处理,然后返回一个新的DataFrame: import pandas as pd df = pd. ...

  7. Diocp截图

    跑了个数据库的查询和插入,删除.     Http SVR DEMO http://123.232.98.202:8081/

  8. COMBINATORIAL TESTING

    COMBINATORIAL TESTING -Test note of “Essential Software Test Design” 2015-09-06 Content 16.1 Coverag ...

  9. Android Gallery实现3D相册(附效果图+Demo源码)

    今天因为要做一个设置开机画面的功能,主要是让用户可以设置自己的开机画面,应用层需要做让用户选择开机画面图片的功能.所以需要做一个简单的图片浏览选择程序.最后选用Gallery作为基本控件.加入了一些炫 ...

  10. 如何搭建WebRTC信令服务器

    WebRTC 有一整套规范,如怎样使用它的接口.使用SDP进行媒体协商.通过ICE收集地址并进行连通性检测等等.除此之外,WebRTC还需要房间服务器将多端聚集到一起管理,以及信令服务器进行信令数据交 ...