一个Junit做单元测试的简单例子

例子很简单,设计一个程序,输入三个整数,判断这三个整数作为三边的长度能否构成一个三角形,如果可以则返回三角形的类型(普通三角形,等腰三角形或者等边三角形)

实现代码(我自己随便写的做个例子用,估计代码质量很差。。):

public class JudgeTriangle
{
 //普通三角形
 private static int NORMAL_TRIANGLE = 0;
 //等腰三角形
 private static int ISOSCELES_TRIANGLE  = 1;
 //等边三角形
 private static int EQUILATERAL_TRIANGEL = 2;
 //无法构成三角形
 private static int ERROR_CODE = -1;

public int getNormalTriangle()
 {
  return NORMAL_TRIANGLE;
 }
 public int getIsoscelesTriangle()
 {
  return ISOSCELES_TRIANGLE;
 }
 public int getEquilateralTriangle()
 {
  return EQUILATERAL_TRIANGEL;
 }
 public int getErrorCode()
 {
  return ERROR_CODE;
 }
 public int judgeType(int a,int b,int c)
 {
  if ((a<=0)||(b<=0)||(c<=0))
  {
   return ERROR_CODE;
  }
  if ((a+b<c || Math.abs(a-b)>c) || (b+c<a || Math.abs(b-c)>a) || (a+c<b || Math.abs(a-c)>b))
  {
   return ERROR_CODE;
  }
  if (a==b || b==c || c==a)
  {
   if (a==b && b==c)
   {
    return EQUILATERAL_TRIANGEL;
   }
   else
   {
    return ISOSCELES_TRIANGLE;
   }
  }
  else
  {
   return NORMAL_TRIANGLE;
  }
 } 
}

单元测试代码:

import static org.junit.Assert.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class JudgeTriangleTest {
 
 private static JudgeTriangle judgeTriangle = new JudgeTriangle();
 
 @Before
 public void setUp() throws Exception {
 }

@Test
 public void testIsNormalTriangle() throws Exception {
  assertEquals(judgeTriangle.getNormalTriangle(),judgeTriangle.judgeType(3, 4, 5));
 }
 @Test
 public void testIsIsoscelesTriangle() throws Exception {
  assertEquals(judgeTriangle.getIsoscelesTriangle(),judgeTriangle.judgeType(2, 2, 3));
 }
 @Test
 public void testEquilateralTriangle() throws Exception {
  assertEquals(judgeTriangle.getEquilateralTriangle(),judgeTriangle.judgeType(2, 2, 2));
 }
 @Test
 public void testNotTriangle() throws Exception {
  assertEquals(judgeTriangle.getErrorCode(),judgeTriangle.judgeType(10, -10, 10));
  assertEquals(judgeTriangle.getErrorCode(),judgeTriangle.judgeType(10, 2, 2));
 }
 
 @After
 public void tearDown() throws Exception {
 }

}

这两个链接对于junit的介绍比较简单好懂

http://tech.sina.com.cn/s/2010-01-18/14081218926.shtml

http://leowzy.iteye.com/blog/793077

时间: 2024-08-24 18:37:17

一个Junit做单元测试的简单例子的相关文章

spring junit 做单元测试,报 Failed to load ApplicationContext 错误

spring junit 做单元测试,报 Failed to load ApplicationContext 错误. 查找了好一会,最后发现.@ContextConfiguration(locations = { "classpath:/spring/applicationContext.xml","classpath:/spring/app-config.xml", …… 改成 @ContextConfiguration(locations = { "c

一个java解析xml的简单例子

java解析xml,主要是通过Dom4j实现的,很多场合都会用到此功能,需要解析XML文件. 下面是一个简单的解析XML文件的例子: import java.util.Iterator; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; /** * 解析XML文件 * * @author sunlightcs

Java使用JUnit做单元测试

一.类的定义: 首先创建一个叫F的项目,在项目下定义Triangle类,判断三角形 二.JUnit项目引入 1.将JUnit单元测试包引入这个项目:在该项目上右击点“Properties“生成如下图: 2首先选“java Build  Path”,再选“libraries”,右边再点击“Add Library...” 3在新弹出的对话框中选中“JUnit”,点Next,在对话框中选Junit4,点“Finish”,JUnit4软件包就被包含进F项目了 三. 生成JUnit测试框架,在MYEcli

spring集成Junit做单元测试及常见异常解决办法

spring-test依赖包 <!--Spring-test --> <!-- https://mvnrepository.com/artifact/org.springframework/spring-test --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version&g

一个listview嵌套listview的简单例子

在我刚刚看到一个页面是需要listview嵌套listview的时候  我内心是拒绝的, 这种设计也太傻逼了啊.. 但是不能退缩不是,其实也很简单,关键都在Adapter中 在最外层的listview ,讲第二层的listview当成一个简单的控件,比如textview啥的  你比较好理解的东西 写进viewholder中 比如: public static class ViewHolder { public TextView mTextView; //体检项目的分类 如:车身报告 public

用java做thrift服务端,php做thrift客户端简单例子

注意: 1).需要的包以及路径问题要注意修改为自己本地的 2)详细情况见  http://pan.baidu.com/s/1qW8xI0k 这里以Hello.thrift为例 namespace java hellodemo namespace php hellodemo service Hello{ string helloString(1:string para) i32 helloInt(1:i32 para) bool helloBoolean(1:bool para) void hel

从一个简单例子来理解js引用类型指针的工作方式

? 1 2 3 4 5 6 7 <script> var a = {n:1};  var b = a;   a.x = a = {n:2};  console.log(a.x);// --> undefined  console.log(b.x);// --> [object Object]  </script> 上面的例子看似简单,但结果并不好了解,很容易把人们给想绕了--"a.x不是指向对象a了么?为啥log(a.x)是undefined?".&

用R语言实现一个求导的简单例子

在学习导数的时候,老师都会这样解释,假设y=f(x),对点(x0,y0)的求导过程如下:设dx是一个很小的数=> y0+dy=f(x0+dx)=> dy=f(x0+dx)-y0则在这一点的导数a=dy/dx这样假设的前提是dx很小,所以x0至(x0+dx)很短,可以近似为一条直线,则dy/dx可以看成是点(x0,y0)和点(x0+dx,y0+dy)连成直线的斜率因此关于某个点的导数,其意义也可以解释成在该点的变化率 下面用R语言实现一个简单例子:假设:y=1/x,求点(1,1)的导数 x<

C语言多线程的一个简单例子

多线程的一个简单例子: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <pthread.h> void * print_a(void *); void * print_b(void *); int main(){ pthread_t t0; pthread_t t1; // 创建线程A if(pthread_creat