0

第一次使用 JUnit,到目前为止它还不错。在测试中,我期望一个数字为 128。我在代码中将其指定为:

assertEquals(myclass.myVar(), 228);

但是我从 JUnit 得到了一个奇怪的错误:

expected:<418> but was:<228>
junit.framework.AssertionFailedError: expected:<418> but was:<228>

所以程序给了我正确的输出。为了确定,我在没有 JUnit 的情况下进行了检查。但是测试失败了。谁能解释一下它从哪里得到 418 号码?我根本没有在 Junit 测试文件的任何地方指定它。

TIA

4

3 回答 3

3

你的论点是错误的。它应该是:

assertEquals(expectedValue, actualValue);

所以你的测试应该是:

assertEquals(228, myclass.myVar());

那时你会得到一个更合理的信息——然后你需要弄清楚为什么myVar()实际上返回 418 :)

于 2012-11-13T18:08:44.413 回答
3

assertEquals中,第一个参数应该是期望值,第二个参数应该是测试值。所以你应该写:

assertEquals(228, myclass.myVar());

输出将是:

expected:<228> but was:<418>

注意:如果您来自使用相反约定的 testNG,您可能会感到惊讶。

于 2012-11-13T18:08:54.833 回答
2

除了提供的答案指出您的值是倒退的之外,您还可以考虑使用较新的 JUnit 表示法:

assertThat(myclass.myvar(), is(228));

这使论点更自然,阅读更流畅。

于 2012-11-13T18:56:15.757 回答