1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 说实话 写了这么多程序了 还从来没有用JUnit作为单元测试工具测试过 今天就来学习一下

说实话 写了这么多程序了 还从来没有用JUnit作为单元测试工具测试过 今天就来学习一下

时间:2019-06-09 21:57:47

相关推荐

说实话 写了这么多程序了 还从来没有用JUnit作为单元测试工具测试过 今天就来学习一下

1、 说实话,写了这么多程序了,还从来没有用JUnit作为单元测试工具测试过,心理面感到真的是惭愧。原来的所有测试,我都是通过在控制台打印输出语句看结果,这样就可以根据自己打印的信息自己去判断,如果是少量的打印语句,还好办,但是如果是多数,那就不好办了,有些时候在测试好后,发布的程序中一般都不包括打印语句,这样就会把测试好的程序的打印测试语句去掉。所谓,人无完全,程序也没有绝对不出错的,只是看条件而已,而以后如果再次出错的时候,自己又会一行行的去读代码,找逻辑,再去写打印语句,然后再删除掉,这样,个人感觉,小项目里面还可以使用,这种多半就是一两个人做,就算改起来也会好办。但是如果是大项目,那么就惨了,开发人员换了一批又一批,每个人都不知道对方做了些什么,还有些什么没有做,慢慢的去读代码,或者是还不如自己去写,这样就浪费时间。因为也做个几个项目,所以对这个也算有了一定的了解,既然要想做一个优秀的JAVA程序员,那么JNuit现在应该是一个比较好的测试工具。

下面是JUnit一些特性的总结:

1) 提供的API可以让你写出测试结果明确的可重用单元测试用例2) 提供了三种方式来显示你的测试结果,而且还可以扩展3) 提供了单元测试用例成批运行的功能4) 超轻量级而且使用简单,没有商业性的欺骗和无用的向导5) 整个框架设计良好,易扩展

2、 我现在用的是JNUIT4,我把ASSERT包中的一些比较难于理解的方法,写在这里:

assertTrue

public static voidassertTrue(java.lang.Stringmessage, booleancondition)

断言conditon为真,如果不是就抛出指定的异常错误message

Parameters:message- 指定的或者是为空的断言错误condition- 检测的条件

assertFalse

public static voidassertFalse(java.lang.Stringmessage, booleancondition)

断言conditon为假,如果不是就抛出指定的异常错误messageParameters:message- 指定的或者是为空的断言错误condition- 检测的条件

fail

public static voidfail(java.lang.Stringmessage)

用指定的信息去使一个测试失败

Parameters:message- 指定的或者是为空的断言错误See Also:AssertionError

assertEquals

public static voidassertEquals(java.lang.Stringmessage, java.lang.Objectexpected, java.lang.Objectactual)

断言两个对象相对,如果不等,就用指定的信息抛出一个断言错误。如果expected或者是actual为空,他们认为是相等的。Parameters:message- 指定的或者是为空的断言错误expected- 期待的值actual- 实值的值

assertEquals

public static voidassertEquals(java.lang.Stringmessage, doubleexpected, doubleactual, doubledelta)

用一个正误差,去断言两个双精度数或者是单精度数相对。如果不等,用指定的message抛出异常。如果expeted的值无穷大,那么些是精度就会被忽略。NaNs被认为相等:assertEquals(Double.NaN, Double.NaN, *)通过。

Parameters:message- 指定的或者是为空的断言错误expected- 期待的值actual- 根据期待的值的实际值delta- 在精度之内的期待值与实际值,被认为是相等的

下面两个方法没有搞懂

assertThat

public static <T> voidassertThat(Tactual, org.hamcrest.Matcher<T>matcher)

assertThat

public static <T> voidassertThat(java.lang.Stringreason, Tactual, org.hamcrest.Matcher<T>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());

}

}

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!/jiangjunshow

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。