JUnit奇怪 - 我没有指定的预期数字

时间:2012-11-13 18:07:34

标签: java testing junit

第一次使用JUnit,到目前为止一直很好。在测试中,我期望一个数字为128.我在代码中将其指定为:

assertEquals(myclass.myVar(), 228);

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

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

所以程序给了我正确的输出。我没有JUnit检查过,只是为了确保。但是测试失败了。任何人都可以了解它从哪里获得418号码?我根本没有在Junit测试文件中的任何地方指定它。

TIA

3 个答案:

答案 0 :(得分:3)

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

assertEquals(expectedValue, actualValue);

所以你的测试应该是:

assertEquals(228, myclass.myVar());

此时你会收到更合理的信息 - 然后你需要找出myVar()实际返回的原因418:)

答案 1 :(得分:3)

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

assertEquals(228, myclass.myVar());

输出将是:

expected:<228> but was:<418>

注意:如果你来自使用相反惯例的testNG,可能会感到惊讶。

答案 2 :(得分:2)

除了提供的答案指出您的值是向后的,您可以考虑使用更新的JUnit表示法:

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

将参数放在更自然的顺序中,读起来更流畅。