java tdd_java-Eclipse插件TDD?

开发Eclipse插件时如何做TDD?

由于PDE是清单优先的方法,因此没有“测试范围的依赖项”之类的东西.

我是否应该在一边进行另一个基于Maven的项目?并直接在其构建路径中添加插件项目? (由于插件项目不是基于Maven的,因此不会在.m2中).这似乎不是一个很好的设置…

我已经读过某个插件片段可以完成工作的地方,但是我必须手动将Mockito或EasyMock添加到自定义存储库中?还是将其包含在该片段内的类路径中?这似乎不太方便.

我已经习惯了Bndtools,但是它适合eclipse插件吗?

另外,我通常使用Infinitest和MoreUnits,如果测试位于第二个项目中,我猜后者将不起作用?

最后,我只读了约Eclipse Tycho,这是一组Maven插件

构建eclipse插件,即使它在孵化器中,它也是一个合适的选择吗?

解决方法:

多年来,我们已经在多个项目中使用了测试片段,并发现它是最实用的方法.

因为该片段与其主机束共享相同的类加载器,所以您的测试可以访问内部包和包私有方法,就像没有OSGi容器一样.

片段甚至可以包含fragment.xml,您可以在其中提供扩展以测试是否必要.

测试驱动的插件开发中最烦人的部分是PDE测试本身.一旦您的被测试代码要求工作台正在运行,测试执行速度就会大大降低. PDE测试启动Eclipse工作台以在其中执行测试.

因此,我们努力将我们的代码与工作台代码尽可能地隔离开.这使我们能够在可能的情况下编写“快速的”普通JUnit测试,并且在绝对必要时仅求助于PDE测试.两种测试都可以驻留在相同的片段中,并通过处理方式进行区分.

需要通过目标平台提供测试依赖项(JUnit,Mock库,匹配器库等)(以及其他非测试依赖项).虽然混合这些依赖关系看起来很奇怪,但我们在实践中没有任何问题.

MoreUnit恰好适合此设置.可以对每个项目进行配置,以在特定的源文件夹中查找测试/生产代码类,即使它们位于不同的项目中也是如此.

Infinitest可能不适合执行PDE测试,仅因为它们的执行速度慢而Infinitests即将频繁执行快速测试.但是,如果可以排除PDE测试,您仍然可以将其用于普通的JUnit测试.

例如,Eclipse Extras项目应用了所描述的技术-如果您有兴趣,可以探索资源以了解它们在实践中如何工作.

如果您从头开始,Bndtools当然值得考虑.我听说Bndtools开发人员使用Bndtools来构建Bndtools. AFAIK Bndtools不对插件工件(例如plugin.xml)进行编辑支持.但是也许您可以将PDE插件编辑器与Bndtools一起使用来编辑扩展和扩展点.

在典型的Bndtools项目中,您的生产代码和测试代码位于同一项目内的不同源文件夹中,就像maven项目一样.

但是,测试源文件夹不包括在结果包中.

在同一项目中包含生产和测试代码的缺点是,从生产代码中可以看到测试依赖性.这是因为两个源文件夹共享相同的类路径容器.

尽管Tycho具有孵化器的地位,它却是测试和构建各种Eclipse工件(如插件,功能,目标平台和产品)的好工具.结合上述设置,我们在CI服务器上使用Tycho来构建,运行测试

最后为我们的插件项目打包p2存储库.

关于该主题的更多资源:

标签:maven,osgi,eclipse-plugin,tdd,java

来源: https://codeday.me/bug/20191120/2044241.html

测试驱动的编程是 XP 困扰程序员的一个方面。对于测试驱动的编程意味着什么以及如何去做,大多数人都做出了不正确的假设。这个月,XP 方面的讲师兼 Java 开发人员 Roy Miller 谈论了测试驱动的编程是什么,它为什么可以使程序员的生产力和质量发生巨大变化,以及编写测试的原理。请在与本文相随的 论坛中提出您就本文的想法,以飨笔者和其他读者。(您也可以单击本文顶部或底部的“讨论”来访问该论坛。) 最近 50 年来,测试一直被视为项目结束时要做的事。当然,可以在项目进行之中结合测试,测试通常并不是在 所有编码工作结束后才开始,而是一般在稍后阶段进行测试。然而,XP 的提倡者建议完全逆转这个模型。作为一名程序员,应该在编写代码 之前编写测试,然后只编写足以让测试通过的代码即可。这样做将有助于使您的系统尽可能的简单。 先编写测试 XP 涉及两种测试: 程序员测试和 客户测试。测试驱动的编程(也称为 测试为先编程)最常指第一种测试,至少我使用这个术语时是这样。测试驱动的编程是让 程序员测试(即单元测试 ― 重申一下,只是换用一个术语)决定您所编写的代码。这意味着您必须在编写代码之前进行测试。测试指出您 需要编写的代码,从而也 决定了您要编写的代码。您只需编写足够通过测试的代码即可 ― 不用多,也不用少。XP 规则很简单:如果不进行程序员测试,则您不知道要编写什么代码,所以您不会去编写任何代码。 测试驱动开发(TDD)是极限编程的重要特点,它以不断的测试推动代码的开发,既简化了代码,又保证了软件质量。本文从开发人员使用的角度,介绍了 TDD 优势、原理、过程、原则、测试技术、Tips 等方面。 背景 一个高效的软件开发过程对软件开发人员来说是至关重要的,决定着开发是痛苦的挣扎,还是不断进步的喜悦。国人对软件蓝领的不屑,对繁琐冗长的传统开发过程的不耐,使大多数开发人员无所适从。最近兴起的一些软件开发过程相关的技术,提供一些比较高效、实用的软件过程开发方法。其中比较基础、关键的一个技术就是测试驱动开发(Test-Driven Development)。虽然TDD光大于极限编程,但测试驱动开发完全可以单独应用。下面就从开发人员使用的角度进行介绍,使开发人员用最少的代价尽快理解、掌握、应用这种技术。下面分优势,原理,过程,原则,测试技术,Tips等方面进行讨论。 1. 优势 TDD的基本思路就是通过测试来推动整个开发的进行。而测试驱动开发技术并不只是单纯的测试工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值