OSGi enRoute – 2.3_4 – 测试我们的Provider
你将在本章中学到什么
在本章中我们将会为simple.provider服务实现创建一个白盒JUnit测试。JUnit测试很容易使用,广泛地使用它能在后续的开发过程中节约大量的时间。JUnit测试在代码发布之前运行,一旦它们运行失败,则会阻止工程发布。
这些JUnit测试可以在OSGi框架之外运行。
测试是一名开发人员必须要做的事情之一,尽管它没有那些算法代码有趣。然而,这是节约你的时间的最有效的方法。
确保你位于顶层文件夹中:
1 |
$ cd ~/workspaces/osgi.enroute.examples.eval |
JUnit
一个Provider应该永远带有单元测试。单元测试是白盒测试。测试用例了解实现细节,甚至可以看到不是公开API的组件内容。
由于JUnit测试在OSGi之外运行,因此需要将服务实现设计为可以将OSGi相关的部分参数化,以便可以调用Java原生类对象(Plain Old Java Objects,POJO)。这些POJO可以被独立测试。
在Maven中,我们需要在src/test/java文件夹中编写测试用例。
1 2 3 4 |
osgi.enroute.examples.eval $ cd simple.provider simple.provider $ mkdir -p src/test/java/osgi/enroute/examples/eval/simple/provider simple.provider $ vi src/test/java/osgi/enroute/examples/eval/simple/provider/EvalImplTest.java //复制后续代码 |
1 2 3 4 5 6 7 8 9 10 11 |
package osgi.enroute.examples.eval.simple.provider; import junit.framework.TestCase; import osgi.enroute.examples.eval.provider.EvalImpl; public class EvalImplTest extends TestCase { public void testSimple() throws Exception { EvalImpl t = new EvalImpl(); assertEquals(3.0, t.eval("1 + 2")); } } |
我们可以通过Maven运行这个测试用例:
1 2 3 4 5 6 7 8 9 10 11 12 |
simple.provider $ mvn test ... ------------------------------------------------------- T E S T S ------------------------------------------------------- Running com.acme.prime.eval.provider.EvalImplTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.014 sec Results : Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 ... |
我们学到了什么?
在本章中我们学习了如何编写一个简单的JUnit测试用例,并且在不需要OSGi运行时的情况下测试服务实现。
打赏一下
支付宝

微信

除非注明,博客文章均为原创,转载请标明文章地址本文地址: http://www.javafxchina.net/blog/2018/02/osgi-enroute-0203_4/