Questions tagged «junit»

2
具有在线功能的单元测试课程
当类的单元测试功能具有需要在线功能的私有功能时。人们将如何进行测试? 例如: public class Foo { public int methodA() { int val = goOnlineToGetVal(); return val; } private int goOnlineToGetVal() { CloudService c = new CloudService(); int oval = c.getValueFromService(); return oval; } } 如果我要测试功能:“ methodA()”,它将尝试使用“ goOnlineToGetVal()”,但是如果此测试在没有功能的情况下,它将尝试联机。不上网怎么办100%的课堂覆盖率?

4
如何大幅提高代码覆盖率?
我的任务是让遗留应用程序处于单元测试之下。首先介绍一下应用程序的背景知识:这是一个600k LOC Java RCP代码库,存在以下主要问题 大量代码重复 没有封装,大多数私有数据都可以从外部访问,一些业务数据也成为单例,因此不仅可以从外部更改,而且可以从任何地方更改。 没有抽象(例如,没有业务模型,业务数据存储在Object []和double [] []中),因此没有OO。 有一个很好的回归测试套件,一个高效的质量检查团队正在测试和发现错误。我知道如何从经典书籍(例如Michael Feathers)中对其进行测试的技术,但这太慢了。由于存在工作正常的回归测试系统,因此我不怕积极地重构系统以允许编写单元测试。 我应该如何着手解决问题以快速获得覆盖范围,以便能够向管理人员展示进度(实际上是从JUnit测试的安全网中开始赚钱)?我不想使用工具来生成回归测试套件,例如AgitarOne,因为这些测试不会测试是否正确。

5
单元测试无效方法
为了修复应用程序中的错误,我postLogin通过将调用添加到名为的现有方法上来修改了一种名为的方法getShoppingCart。 码 protected void postLogin() { getShoppingCart(); } 但是,我不确定编写单元测试的最佳方法postLogin是什么。 方法1 使用Mockito中的verify可以简单地验证该方法是否已被调用。 verify(mock).getShoppingCart(); 方法2 通过获取用户购物车的值来测试方法调用的副作用。 AssertNotNull(user.getShoppingCart()); 一种方法比另一种更好吗?


3
模拟具体课程-不推荐
我刚刚读了《成长面向对象的软件》一书的摘录,其中解释了为什么不建议模拟具体类的一些原因。 以下是MusicCentre类的单元测试的一些示例代码: public class MusicCentreTest { @Test public void startsCdPlayerAtTimeRequested() { final MutableTime scheduledTime = new MutableTime(); CdPlayer player = new CdPlayer() { @Override public void scheduleToStartAt(Time startTime) { scheduledTime.set(startTime); } } MusicCentre centre = new MusicCentre(player); centre.startMediaAt(LATER); assertEquals(LATER, scheduledTime.get()); } } 和他的第一个解释: 这种方法的问题在于,它使对象之间的关系保持隐式。我希望我们现在已经弄清楚了,使用模拟对象进行测试驱动开发的目的是发现对象之间的关系。如果我是子类,则域代码中没有任何东西可以使这种关系可见,而只是对象上的方法。这使得很难看到支持这种关系的服务是否在其他地方有用,下次我与该类一起工作时,我将不得不再次进行分析。 他说的时候我无法确切知道他的意思: 这使得很难看到支持这种关系的服务是否在其他地方有用,下次我与该类一起工作时,我将不得不再次进行分析。 我了解该服务对应于MusicCentre称为的方法startMediaAt。 他在“其他地方”是什么意思? 完整的摘录在这里:http : …

3
是否手动编写单元测试示例验证?
我们知道编写JUnit测试可以演示代码中的一条特定路径。 我的一位同事评论说: 手动编写单元测试是“ 通过示例证明”。 他来自具有诸如Quickcheck之类的工具的Haskell的背景,并且具有推理类型程序行为的能力。 他的意思是,此方法未尝试使用许多其他输入组合,而您的代码并未经过测试。 我的问题是:手动编写单元测试示例验证吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.