`
blusky
  • 浏览: 23833 次
  • 性别: Icon_minigender_1
  • 来自: 福建福州
最近访客 更多访客>>
社区版块
存档分类
最新评论

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());
    }   
}

分享到:
评论

相关推荐

    junit总结

    《Junit总结——深入理解与应用》 JUnit是Java编程语言中最常用的单元测试框架,它为开发者提供了一种简洁、高效的方式来编写和运行测试用例,确保代码的正确性和稳定性。这篇总结将深入探讨JUnit的核心概念、使用...

    junit总结使用例子

    ### 总结 JUnit作为Java单元测试的重要工具,提供了丰富的功能和良好的扩展性。通过理解和熟练运用上述知识点,开发者可以编写出高效、可靠的测试代码,确保软件质量。无论是新手还是经验丰富的开发者,深入掌握...

    Junit4测试总结

    **Junit4测试总结** JUnit4是Java编程语言中最常用的一个单元测试框架,它极大地简化了测试代码的编写,使得开发者能够更加专注于测试用例的设计和执行。在本文中,我们将深入探讨JUnit4的主要特性、如何使用以及它...

    junit4 jar包

    总结一下,"junit4 jar包"是Java开发中不可或缺的一部分,它提供了一套完善的单元测试工具和API,帮助开发者确保代码的质量和稳定性。通过`junit-4.11.jar`和`hamcrest-core-1.3.jar`这两个关键库,我们可以编写出...

    JUnit讲课文档JUnit讲课文档

    总结,JUnit是Java开发中不可或缺的工具,它提供了丰富的注解、断言、异常处理、参数化测试、测试套件以及并发执行等功能,使得单元测试变得简单且高效。理解并熟练使用JUnit,能够提升代码质量,保障软件的稳定性和...

    junit3.8 和junit4 api

    JUnit是Java编程语言中最...总结来说,JUnit 4通过注解和更多的灵活性提升了测试体验,而JUnit 3.8则相对基础和传统。随着Java开发的不断进步,理解并熟练运用不同版本的JUnit API对于保证代码质量和可维护性至关重要。

    junit4学习文档

    ### 总结 JUnit4 通过引入注解机制大大提高了测试用例编写的灵活性和便捷性。开发者可以根据实际需求自由地选择测试类的结构和测试方法的命名方式,同时还能利用丰富的注解来控制测试流程,如指定初始化和清理操作...

    学习JUnit4过程中的总结

    这篇博客“学习JUnit4过程中的总结”可能是作者在深入研究JUnit4后的一些心得体验和技巧分享。下面我们将深入探讨JUnit4的核心特性、如何使用以及它在软件开发中的重要性。 首先,JUnit4引入了注解(Annotation)的...

    Junit的jar包.zip

    JUnit是Java编程领域中最常用的单元测试框架之一,它为...总结起来,JUnit 4.10是一个强大的测试框架,通过其丰富的注解和功能,能够帮助开发者编写出结构清晰、易于维护的单元测试,从而提升软件的质量和可靠性。

    Junit4.8.2(Junit4.7)

    总结来说,JUnit 4.8.2和4.7都是强大的单元测试工具,选择4.8.2可以避免额外的库依赖问题,而4.7则适用于对老版本有特殊需求的场景。无论使用哪个版本,JUnit都能有效地帮助开发者编写、组织和运行测试,确保代码的...

    junit-4.11.jar

    总结来说,JUnit 4.11作为一款强大的单元测试框架,通过注解、参数化测试、异常断言等功能,极大地提高了测试的效率和质量。开发者应充分利用其特性,以确保代码的质量和稳定性,同时,结合相关文档和资源,可以更好...

    junit测试.zip

    总结起来,JUnit是Java开发中的重要工具,通过其提供的API和注解,开发者可以有效地进行单元测试,确保代码的质量和稳定性。这个“junit测试.zip”文件的使用,意味着你可以轻松地在你的项目中集成单元测试框架,...

    Junit 单元测试完整案例

    总结,Junit单元测试对于确保代码的正确性和可维护性至关重要。Spring和Struts框架的测试涉及到特定的策略和工具,理解并熟练运用这些知识,可以提升开发效率,降低维护成本。通过深入学习本案例,你将能够自信地对...

    JUnit3.8.1 以及使用JUnit测试的代码demo

    总结来说,JUnit3.8.1是一个用于Java单元测试的框架,通过创建测试类和方法,利用断言验证代码行为,确保代码质量。虽然现在有更新的版本,但理解其基本原理对于学习单元测试至关重要。通过提供的代码示例,我们可以...

    junit4.9.zip

    总结来说,"junit4.9.zip"提供的这两个文件,对于任何想要学习和使用JUnit 4.9进行单元测试的Java开发者来说,都是不可或缺的资源。通过深入研究源代码,结合实际项目实践,开发者可以充分利用JUnit的强大功能,提升...

    junit5.6.2.zip

    总结起来,JUnit5.6.2通过其核心组件Jupiter、Platform和参数化测试,极大地提升了Java开发中的单元测试体验。通过理解这些组件的功能和用法,开发者能够更好地利用JUnit5来编写高效、可维护的测试代码,从而确保...

    junit-4.10.jar,junit集合

    JUnit是Java编程语言中...总结来说,JUnit 4.10是Java开发中的重要工具,它简化了单元测试的编写和执行,增强了测试的可读性和维护性。了解和掌握JUnit的使用能够提高软件质量,降低bug的产生,并加速问题定位和修复。

    junit3个安装包

    **总结** JUnit 3作为早期的Java单元测试框架,尽管已被更新的版本取代,但在维护旧项目或学习单元测试基本概念时仍有其价值。理解如何安装、配置和使用JUnit 3,对于提升代码质量、确保软件的健壮性至关重要。在...

    Junit学习.rar

    13. **学习笔记**:个人的学习笔记可能包含了作者在实践过程中遇到的问题、解决方案和经验总结,对于学习者来说是一份宝贵的实战经验。 以上只是部分可能涵盖的知识点,实际的压缩包文件可能还包含更多细节和深入的...

Global site tag (gtag.js) - Google Analytics