OSGi enRoute – 2.2_5 – 使用(标准的)JUnit来测试Provider

在本节中你将学到什么内容

在本节中我们将为我们的Provider实现类创建一个JUnit白盒测试。JUnit测试使用起来很简单,使用它们将会在后续的开发过程中节约大量的时间。JUnit测试在代码发布之前运行,并且一旦测试失败则会阻止项目发布。

JUnit

一个Provider应该总是进行单元测试。单元测试是白盒测试。这些测试知道实现细节,并且甚至可以看到组件的非公开API情况。OSGi enRoute模板已经在test文件夹中为我们添加了一个测试用例。该EvalImplTest测试用例与EvalImpl类放到相同的包中,但是永远不会成为Bundle的一部分。然而,由于测试放在同一个包中,因此它可以查看EvalImpl类中的私有信息;这在测试过程中非常有用。再次强调,这些是白盒测试。

下面来计算一个简单的表达式:

当学习驾驶收放式起落架飞机时,我的老师告诉我有两种飞行员:一种是已经降落过收起起落架的飞机的飞行员,一种是还没有降落过收起起落架的飞机的飞行员。在bndtools中进行测试与此类似,你必须在选择测试类或方法之后,选择@/Run As/JUnit Test菜单来使用标准的Eclipse JUnit测试。毫无疑问的,你会经常使用到Bnd OSGi Test Launcher (JUnit),这我们将会在后续进行讨论。因此选择EvalImplTest类,并且选择@/Run As/JUnit Test菜单。

20171119_101

显然,这个测试简单地对实现类进行了测试!这对于读者来说是一个很好的练习(你同时也非常痛恨这些吗?)

20171119_102

要运行JUnit测试,你可以选择工程、test文件夹、一个包、一个类或者一个方法,然后调用上下文菜单,然后选择@/Debug As/JUnit Test菜单。然后将会运行在所选的内容之下的所有测试。

调试

由于大多数代码很难在第一次运行时就成功,我们需要进行调试。你可以通过在希望设置断点的位置的侧边栏上进行双击来设置断点。设置后会出现一个蓝色的小点。选择希望运行的测试方法,选择@/Debug As/JUnit Test菜单。

JUnit面板具有多个按钮,允许你重新运行测试,这是一个功能强大的工具。

它是如何工作的?

JUnit运行器将会创建一个新的VM,将build-path设置为class-path。也就是说你的所有测试依赖项都必须放到了build-path之中。然后可以运行你的测试。你可以使用如下两者之一:

● JUnit 4.x ——JUnit 4需要在测试类上进行注解。不要在你的类中继承TestCase类,因为这样会导致注解被忽略。

● JUnit 3.x——JUnit 3 测试用例必须继承TestCase。这通常是编写测试用例的最简单的方法。

 

打赏一下
支付宝
微信
除非注明,博客文章均为原创,转载请标明文章地址
本文地址: http://www.javafxchina.net/blog/2017/11/osgi-enroute-0202-05/
百度未收录