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、最初の引数は期待される値で、2 番目の引数はテストされた値であると想定されています。したがって、次のように書く必要があります。

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 に答える