我是jUnit的新手,我试图加深我对它的了解。我在网上搜索了一下,但没有找到任何可以解决几个疑问的东西。
这是代码:
public class StringConverter {
public static String formatDate(Date date) {
DateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
return sdf.format(date);
}
}
这是jUnit4测试用例:
public class StringConverterTest {
@Test
public void testFormatDate() {
Calendar calendar = new GregorianCalendar(2013, 02, 13, 8, 30, 00);
assertEquals("13/03/2013 08:30:00", StringConverter.formatDate(calendar.getTime()));
}
}
TestCase运行正常,没有任何问题,但我有两个简单的问题/问题:
1) 只测试方法的正确功能是正确的,还是应该同时测试null
值和/或任何特定异常?
2) 当我用EclEmma运行代码覆盖率时,它给了我75%的代码覆盖率,因为测试用例没有测试StringConverter
类的构造函数。测试StringConverter
类构造函数不在我的计划之内,因为StringConverter
类是一个util类,所以它不会被实例化。有没有办法将其从代码覆盖范围中排除?
任何建议将不胜感激。谢谢。
>
永远不要用null
参数调用此代码。
如果它是一个只包含静态方法的实用类,那么无参数构造函数应该是private
,类应该是final
,以强调这一事实。也许emma会让你一个人呆着,尤其是如果这个构造函数是空的。
问题内容: 我已经配置了EclEmma,使其无法正常运行我的单元测试。但是,编辑器仍会突出显示未涵盖的测试代码。我不希望单元测试中突出显示,因为它们没有检测到覆盖率。我怎样才能做到这一点? 问题答案: 我做了以下步骤: 转到 “首选项”- >“ Java”->“代码覆盖率”,然后 将 “仅路径条目匹配” 选项设置为 看来效果很好。
问题内容: 我们正在将EasyMock和PowerMock与JUnit一起使用。使用的覆盖率工具是ECLEmma。使用EasyMock,它会以绿色正确显示覆盖范围(已覆盖)。但是,对于使用PowerMock进行了单元测试的代码,覆盖范围显示为红色(未覆盖)。在网络上阅读过类似的问题。但是,只想检查是否有解决方案。 谢谢 Venkatesh 问题答案: 这是一个已知的问题:https : //git
我在单元测试中使用ByteBuddy重新定义类。我在每次测试后重置类,以确保测试之间没有串扰。 只要在EclipseIDE中运行测试,或者使用maven命令行运行,ByteBuddy就可以正常工作。但如果它在Eclipse中运行并覆盖,重置该类会导致以下异常: 下面是一个示例测试,它通过默认的JUnit运行程序,但在Eclipse中使用代码覆盖运行时失败。下面是失败的完整堆栈跟踪。 我使用的是By
我正试图使用Eclipse和EclEmma在java中覆盖我的代码。 我的测试使用JUnit 4,我有一些测试看起来像这样: EclEmma说测试失败是因为抛出了一个IllegalArgumentExc0019。所以它会丢弃我的代码覆盖率指标,即使它应该抛出一些东西。有没有一个选项可以让它看到JUnit期望的异常标签? 编辑:我发现,如果您将抛出添加到测试声明中,它也可以工作!
我不熟悉java、Junit和jacoco。我正在做下面的异常处理。我也在捕获异常类,以防该方法抛出之前未捕获的任何其他异常。 在Junit测试中,尝试如下。当我有运行时的任何异常时,我抛出的总是运行时异常捕获块本身,除非我抛出异常。我可以尝试其他哪个选中的异常,使其进入异常捕获块。因此,我无法获得所需的代码覆盖率。 谢谢你的帮助。
问题内容: 我碰到的SO这个线程,其讲述PHP代码覆盖工具-代码覆盖工具对PHP 我从未从事过PHP,并且一直在使用Java针对用PHP编写的应用程序编写Selenium UI测试。当我经过上面提到的线程时,我感到(可能是错误的)当那些用PHP Unit编写的单元测试并且想要找出单元测试覆盖应用程序的程度时,将使用那些PHP代码覆盖工具。 我正在寻找一种解决方案,在其中执行我编写的,用Java编写