有人可以告诉我为什么我在使用值> 127时assertSame()失败吗?
import static org.junit.Assert.*;
...
@Test
public void StationTest1() {
..
assertSame(4, 4); // OK
assertSame(10, 10); // OK
assertSame(100, 100); // OK
assertSame(127, 127); // OK
assertSame(128, 128); // raises an junit.framework.AssertionFailedError!
assertSame(((int) 128),((int) 128)); // also junit.framework.AssertionFailedError!
}
我正在使用JUnit 4.8.1。
原因是Java的自动装箱。您使用的方法:
public static void assertSame(Object expected, Object actual)
它仅适用于对象。将int
s 传递给此方法时,Java将自动调用
Integer.valueOf( int i )
这些值。因此,强制转换为int
无效。
对于小于128的值,Java具有高速缓存,因此assertSame()
将Integer
对象与其自身进行比较。对于大于127的值,Java将创建新实例,因此assertSame()
将一个Integer
对象与另一个对象进行比较。因为它们不是同一实例,所以该assertSame()
方法返回false。
您应该使用以下方法:
public static void assertEquals(Object expected, Object actual)
代替。此方法使用中的equals()
方法Object
。
JUnit是基于Java的开发的常用单元测试框架。 它易于使用且易于扩展。 有许多JUnit扩展可用。 如果您不熟悉JUnit,请从www.junit.org下载并阅读其手册。 本章介绍如何使用Ant执行JUnit测试。 Ant通过JUnit任务直接进行。 JUnit任务的属性如下所示 - Sr.No. 属性和描述 1 dir 从哪里调用VM。 禁用fork时会忽略此项。 2 jvm 用于调用JV
在本章中,我们将学习如何将JUnit和EasyMock集成在一起。 这里我们将创建一个Math Application,它使用CalculatorService来执行基本的数学运算,例如加法,减法,乘法和除法。 我们将使用EasyMock来模拟CalculatorService的虚拟实现。 此外,我们广泛使用注释来展示它们与JUnit和EasyMock的兼容性。 下面以逐步的方式讨论该过程。 St
GWT使用JUnit测试框架为客户端代码的自动测试提供了极好的支持。 在本文中,我们将演示GWT和JUNIT集成。 下载Junit存档 JUnit官方网站 - http://www.junit.org 下载Junit-4.10.jar OS 存档名称 Windows junit4.10.jar Linux junit4.10.jar Mac junit4.10.jar 将下载的jar文件存储到计算
JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中为最成功的一个。 JUnit有它自己的JUnit扩展生态圈。 多数Java的开发环境都已经集成了JUnit作为单元测试的工具。 在线Javadoc:http://www.ostools.net/apidocs/apidoc?api=junit-4.10
JUnit是最初被许多Java应用程序用作单元测试框架的单元框架之一。 默认情况下,JUnit测试会为其测试执行生成简单的报告XML文件。 然后,可以使用这些XML文件根据测试要求生成任何自定义报告。 我们还可以使用XML文件生成HTML报告。 Ant有这样一个实用程序任务,它将这些JUnit XML文件作为输入并生成HTML报告。 默认情况下,TestNG为任何测试执行生成JUnit XML报告
"JUnit Helper" 是一个 Eclipse 的 JUnit 单元测试助手插件,可在保存代码时生成测试案例。 Eclipse Update URL: http://junithelper.org/eclipse/plugins/site.xml