当前位置: 首页 > 面试题库 >

JUnit-assertSame

葛泳
2023-03-14
问题内容

有人可以告诉我为什么我在使用值> 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)

它仅适用于对象。将ints 传递给此方法时,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