scalatestでjUnitに似たものを使用したいと思いassertEquals
ます。
フレームワークはそれを実装しますか、それとも単に提供するだけで、jUnit自体からassert
使用する必要がありますか?assertEquals
次のような「アサート」アプローチがあります
class EqualsTest extends FunSuite {
test("equals") {
assert(1 === 1)
assert(2 === 2, "The reason is obvious")
}
}
トリプルイコールの使用に注意してください。これにより、テストが失敗したときにダブルイコールよりもはるかに優れたエラーメッセージが表示されます。また、2番目のケースは、テストが失敗した場合に出力されるヒントを提供します。ループを使用してテストする場合のループカウントなど、他の方法では明らかではないデータ値を含める場合は、これを使用するのが最適です。
次に、次のようなShouldMatchersアプローチがあります
class EqualsTest extends FunSuite with ShouldMatchers {
test("equals") {
1 should be (1)
}
}
読みやすいので、これがしばしば好まれます。ただし、それを使用する方法を学ぶのは少し難しいです。APIにはいくつかの隅々があります。そして、あなたはヒントの説明を入れることはできません。
ScalaTestの優れた点の1つは、その方法で物事を実行する必要がないことです。特定の状況や好みに最適なアプローチを選択できます。あなたがすでに受け取った他の答えのアプローチと同様に、(そして私の個人的な好み)もあります:
class EqualsTest extends FunSuite {
test("equals") {
expectResult(1) { 1 }
}
}
(これexpectResult
はexpect
ScalaTest 1.xにあることに注意してください)。
assert(Actual.equals(Expected))