JUNIT总结

1、下面是JUnit一些特性的总结:
1)         提供的API可以让你写出测试结果明确的可重用单元测试用例
2)       提供了三种方式来显示你的测试结果,而且还可以扩展
3)       提供了单元测试用例成批运行的功能
4)       超轻量级而且使用简单,没有商业性的欺骗和无用的向导
5)       整个框架设计良好,易扩展
2、    我现在用的是JNUIT4,我把ASSERT包中的一些比较难于理解的方法,写在这里:
assertTrue
public static void assertTrue(java.lang.String message, boolean condition)
断言conditon为真,如果不是就抛出指定的异常错误message
Parameters:
message - 指定的或者是为空的断言错误
condition - 检测的条件
assertFalse
public static void assertFalse(java.lang.String message, boolean condition)
断言conditon为假,如果不是就抛出指定的异常错误message
 
Parameters:
message - 指定的或者是为空的断言错误
condition - 检测的条件
fail
public static void fail(java.lang.String message)
用指定的信息去使一个测试失败
Parameters:
message - 指定的或者是为空的断言错误
See Also:
AssertionError
assertEquals
public static void assertEquals(java.lang.String message,java.lang.Object expected, java.lang.Object actual)
断言两个对象相对,如果不等,就用指定的信息抛出一个断言错误。如果expected或者是actual为空,他们认为是相等的。
 
Parameters:
message - 指定的或者是为空的断言错误
expected - 期待的值
actual - 实值的值
assertEquals
public static void assertEquals(java.lang.String message, double expected, double actual,double delta)
用一个正误差,去断言两个双精度数或者是单精度数相对。如果不等,用指定的message抛出异常。如果expeted的值无穷大,那么些是精度就会被忽略。NaNs被认为相等:assertEquals(Double.NaN, Double.NaN, *)通过。
 
Parameters:
message - 指定的或者是为空的断言错误
expected - 期待的值
actual - 根据期待的值的实际值
delta - 在精度之内的期待值与实际值,被认为是相等的
下面两个方法没有搞懂
assertThat
public static  void assertThat(T actual,org.hamcrest.Matcher matcher)
assertThat
public static  void assertThat(java.lang.String reason,T actual,org.hamcrest.Matcher matcher)

3、 //Assert包里面所有的方法
package junit.framework;
public class Assert
{
 //
 // Constructors
 //
 protected Assert() { }
 //
 // Methods
 //
 public static void assertTrue(java.lang.String p1, boolean p2) { }
 public static void assertTrue(boolean p1) { }
 public static void assertFalse(java.lang.String p1, boolean p2) { }
 public static void assertFalse(boolean p1) { }
 public static void fail(java.lang.String p1) { }
 public static void fail() { }
 public static void assertEquals(java.lang.String p1, java.lang.Object p2, java.lang.Object p3) { }
 public static void assertEquals(java.lang.Object p1, java.lang.Object p2) { }
 public static void assertEquals(java.lang.String p1, java.lang.String p2, java.lang.String p3) { }
 public static void assertEquals(java.lang.String p1, java.lang.String p2) { }
 public static void assertEquals(java.lang.String p1, double p2, double p3, double p4) { }
 public static void assertEquals(double p1, double p2, double p3) { }
 public static void assertEquals(java.lang.String p1, float p2, float p3, float p4) { }
 public static void assertEquals(float p1, float p2, float p3) { }
 public static void assertEquals(java.lang.String p1, long p2, long p3) { }
 public static void assertEquals(long p1, long p2) { }
 public static void assertEquals(java.lang.String p1, boolean p2, boolean p3) { }
 public static void assertEquals(boolean p1, boolean p2) { }
 public static void assertEquals(java.lang.String p1, byte p2, byte p3) { }
 public static void assertEquals(byte p1, byte p2) { }
 public static void assertEquals(java.lang.String p1, char p2, char p3) { }
 public static void assertEquals(char p1, char p2) { }
 public static void assertEquals(java.lang.String p1, short p2, short p3) { }
 public static void assertEquals(short p1, short p2) { }
 public static void assertEquals(java.lang.String p1, int p2, int p3) { }
 public static void assertEquals(int p1, int p2) { }
 public static void assertNotNull(java.lang.Object p1) { }
 public static void assertNotNull(java.lang.String p1, java.lang.Object p2) { }
 public static void assertNull(java.lang.Object p1) { }
 public static void assertNull(java.lang.String p1, java.lang.Object p2) { }
 public static void assertSame(java.lang.String p1, java.lang.Object p2, java.lang.Object p3) { }
 public static void assertSame(java.lang.Object p1, java.lang.Object p2) { }
 public static void assertNotSame(java.lang.String p1, java.lang.Object p2, java.lang.Object p3) { }
 public static void assertNotSame(java.lang.Object p1, java.lang.Object p2) { }
 public static void failSame(java.lang.String p1) { }
 public static void failNotSame(java.lang.String p1, java.lang.Object p2, java.lang.Object p3) { }
 public static void failNotEquals(java.lang.String p1, java.lang.Object p2, java.lang.Object p3) { }
 public static java.lang.String format(java.lang.String p1, java.lang.Object p2, java.lang.Object p3) { }
}
可以看得出来,还是assertEquals () 用得最多了,这个也可能用得最常用的了。
4、下面是一个简单的示例:
被测试类:Calculator
package junit.classes;
public class Calculator {
    public Calculator() {
    }
    public int add(int augend, int addend) {
        return augend + addend;
    }
    public int subtration(int minuend, int subtrahend) {
        return minuend - subtrahend;
    }
}
非正规的测试类:TestCalculator
package junit.test;
import junit.classes.Calculator;
import junit.framework.TestCase;
import org.junit.Test;
public class TestCalculator extends TestCase {
    Calculator calculator = new Calculator();
   
    //用Test注释表示要测试的的单元
    @Test
    public void testAdd() {
        int result = calculator.add(20, 50);
        assertEquals(result, 70);
    }
    @Test
    public void testSubtration() {
        int result = calculator.subtration(50, 20);
        //这里不对,要抛出一个异常
        assertEquals("测试与结果不符",result, 20);
    }
    public static void main(String[] arg) {
        TestCalculator ts=new TestCalculator();
        ts.testAdd();
        ts.testSubtration();
    }
}
正规的测试方式:TestCalculator
package junit.test;
import junit.classes.Calculator;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import junit.textui.TestRunner;
public class TestCalculator extends TestCase {
    Calculator calculator = new Calculator();
    public void testAdd() {
        int result = calculator.add(20, 50);
        assertEquals(result, 70);
    }
    public void testSubtration() {
        int result = calculator.subtration(50, 20);
        //这里不对,要抛出一个异常
        assertEquals("测试与结果不符",result, 20);
    }
    //这个静态方法就是要获得测试的是那个类,必须为静态的
    public static Test suite() {
        //返回测试单元
        //这里的测试单元就是当前类,当前类里面的所有函数
        return new TestSuite(TestCalculator.class);
    }
    public static void main(String[] arg) {
        //运行测试,任何JAVA程序要运行,都必须得有主函数
        TestRunner.run(suite());
    }   
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值