0

我正在执行单元测试 ( JUnit 4 ) 并且我正在使用assertEquals(),但我似乎找不到assertEquals(boolean, boolean)

请告诉我这是否是一种通用方法,即 eclipse 会自动调整到传递的参数类型。例如,如果我选择assertEquals(double, double)并传递字符串,它仍然可以工作吗?如果是,那么是不是因为这是一个通用方法,它对各种数据类型进行操作,Eclipse 会自动调整到传递的参数类型。

我还想知道(仅出于理解目的)代码辅助窗口中的图形符号的含义。

4

5 回答 5

4

除了向您显示可用的内容并在您选择方法时放置“模板”之外,代码辅助不会做任何事情。您可以从技术上选择您想要的任何内容,然后传递不同的参数(只要存在具有该签名的方法)。重要的是 JVM 将如何解释您的代码。

我不知道你是否已经有了这个,但是放置

import static org.junit.Assert.*;

在代码的顶部,您应该会看到所有 jUnit 方法,包括assertEquals.

关于代码辅助符号的第二个问题,它们与可见性有关,如下所示:

  • 绿圈:公众
  • 黄色钻石:受保护
  • 红场:私人
  • 蓝色三角形:
于 2013-08-06T12:12:52.070 回答
1

如果你想检查一个布尔值,你可以使用assertTrue(yourBoolean);或者assertFalse(yourBoolean);没有(也不需要)assertEquals(boolean, boolean);

是的,它是通用的,如果找到,它将适应数据类型。尽管如此,如果你想比较双打,你可以添加一个误差范围,这意味着双打需要多接近才能被认为是相等的。assertEquals(expectedDouble, actualDouble, delta);

于 2013-08-06T12:11:06.823 回答
1

请参阅JavaDoc 了解Assert.

不,该方法不存在,但您可以使用assertTrue( boolean )/assertFalse( boolean )代替。

干杯,

于 2013-08-06T12:12:02.013 回答
0

尝试使用

assertTrue(boolean == boolean);
于 2013-08-06T12:12:15.827 回答
0

这是重载,与 Eclipse 无关。Eclipse 只是在您键入时为您提供帮助。因此,即使您选择assertEquals(double, double)并且传递给该方法的实际参数是,比如说,Objects,它也会起作用。拿起需要doubles的方法并不意味着你被迫通过doubles。你可以传递任何你想要的类型,只要有一个接受它们的重载方法。

于 2013-08-06T12:17:56.787 回答