第二章 你的首个单元测试
这一张已经忘了差不多,如何去测试,其实首先还是得先去考虑怎么去测试,这个就需要看代码单元的需求了。 一个简单的例子。测试排序
第二章 你的首个单元测试
这一张已经忘了差不多,如何去测试,其实首先还是得先去考虑怎么去测试,这个就需要看代码单元的需求了。 一个简单的例子。测试排序
assert 9 = Largest.getLargest(1,3,9);
assert 9 = Largest.getLargest(3,9,7); //多个测试,更能够防止错误。
其实上面的想法,很简单,更主要的是意识,意识真的很重要,我刚打赌,很多不用单元测试的人,压根可能想不到上面那格简单的方式。自嘲一下,我开始看时就感叹了一下。单元测试不麻烦。像这种测试,真的及其重要。有时候不小心改了一些东西,导致了错误,单元测试一下子就能够帮你发现。 另外单元测试能够帮助你快速定位bug。
第三章 使用JUnit 进行单元测试。
jUnit java 测试框架。实现junit 进行测试。 利用junit 中的各种断言进行判断。ps:随着知识的增长,我越来越觉得之前看的一些,不懂其用意的东西,现在觉得真的是非常秒。比如说我之前看到HMM模型里面的源码,就有一些test 。当时不知其目的跟意义。 junit 测试框架。基本就是实现testcase 类,然后添加test方法。代码大致如下:
class TestCaseExample1 extand TestCase{
public TestCaseExample1(){
super("AndroidTestCaseExample1");
}
//just a test example
public void testPlus(){
assertEquals(2,1+1);
}
}
ps:举一反三一下(想到一句老话:看的东西有限,不多想想,你一辈子会的东西也会就是那么多了),android 测试框架类似。不过是使用AndroidTestCase. Example :
class AndroidTestCaseExample1 extand AndroidTestCase{
public AndroidTestCaseExample1(){
super("AndroidTestCaseExample1");
}
/*
* 完全可以测试android里面使用的一些类。比如说像我使用的,自己写的网络数据获取的类。使用这个来测试就非常合适。
*/
public void testPlus(){
assertEquals(2,1+1);
}
public void testCOntext(){
Context context = getContext();
}
}
如果想要测试android Activity的话 可以使用InstrumentationTestCase,继承改类。
测试类也有一个很好的东东,suite()想想,有时候尝试测试多个的testcase 的时候,把所有的testcase 都在一个里面运行,不是方便很多了么? ps:运行测试case 的时候,是运行一个testcase。 so, suite 能够方便我们将多个testcase 一起测试。使用范例是: public static Test suite(){ TestSuite suite = new TestSuite(); suite.addTest(new TestCaseTwo(“tests”); //另外一种方式 suite.addTestSuie(TestClassOne.class); }
另外一个比较实用的是setUp() tearDown(); setUp() 会在每个测试函数前面运行,tearDown()在测试函数后面执信,每个测试函数都会如此。
另外有一个per-suite Setup 和 Tear-down(); 能够在每个TestCase 前面和后面测试。对应的函数是onTimesetUp() onTimeTearDown(); 可以同时使用它们
在suie 中 使用,如下方式,加入 per-suite setup teardown
TestSetup wrapter = new TestSetup(suite){
protected void setUp(){
onTimeSetUp();
}
protected void tearDown(){
onTimeTearDown();
}
}
最后就是使用自己的断言了。其实,最好实现一个自己的TestCase 供自己在项目中继承使用,这样以后需要添加什么测试,就会方便很多了。即使现在这个自定义的基类没有实现一个方法。
测试中出现的异常是个好东西。要有这种想法。
测试骨架
import
extend testcase
调用 super(string);
另外的访问地址:http://boyhouzhi.com/2013/12/05/pragmatic-unit-testing-in-java-with-junit/