私はc#-> Javaから移動しています。 junitを使用していくつかのテストを作成する必要があります。私のテストでは、2つの文字列を比較して、それらが一致するかどうかを確認する必要があります。したがって、Assert.assertEqualsもありますが、これは大文字と小文字が区別されます。大文字と小文字を区別しないようにするにはどうすればよいですか?私が必要なのは:
"blabla".equals("BlabLA")
trueを返します。
したがって、C#では、以前は次のようにしました。
public static void AreEqual (
string expected,
string actual,
bool ignoreCase,
string message
)
私はすぐにJUnitのドキュメントを調べていましたが、このようなものを見つけることができません。
Hamcrest は、デフォルトのJUnit
アサーションよりも優れたアサーションを提供する必要があることに気づきました。 Hamcrestは、非常に多くのオプションを提供し、失敗時のメッセージを改善します。いくつかの基本的なHamcrest
マッチャーはJUnit
に組み込まれ、JUnit
には assertThat が組み込まれているため、これはまったく新しいものではありません。 hamcrest.core
JUnit
APIのパッケージ here 。このように見える IsEqualIgnoringCase を試してください。
assertThat(myString, IsEqualIgnoringCase.equalToIgnoringCase(expected));
静的インポートでは、これは
assertThat(myString, equalToIgnoringCase(expected));
あなたが本当に空想を得たいなら、あなたはそうするでしょう:
assertThat(myString, is(equalToIgnoringCase(expected)));
これの利点の1つは、失敗するとexpected someString but was someOtherString
。とは対照的に expected true got false
assertTrue
を使用する場合。
使用する
"blabla".equalsIgnoreCase("BlabLA") use for check equality ignore case
その後、使用できます
assertTrue("blabla".equalsIgnoreCase("BlabLA"))
JUnit
ではこのアサートを直接サポートしていません(もちろんJUnitを使用していると想定しています)が、次のように使用できます。
assertTrue("blabla".equalsIgnoreCase("BlabLA"))
これを別のヘルパーメソッドでラップすると、一致しない場合に適切なエラーメッセージが表示されます(assertTrue
のドキュメントを参照して、この方法を確認してください)。
何について:
assertEquals("blabla","BlabLA".toLowerCase());
または
assertEquals(expectedLowerCaseString,actualString.toLowerCase());
次に、それらが等しくない場合でも、違いを確認できます。
String
JavaDoc を見ましたか?
"blabla".equalsIgnoreCase("BlabLA")
assertTrue(s1.equalsIgnoreCase(s2))
を使用できます
アサーションについて AssertJ (以前はFEST)を検討してください。これは、何年もの間テストで私のお気に入りのアサーションAPIでした。
assertThat("blabla").isEqualToIgnoringCase("BlabLA");
string ドキュメントからequalsIgnoreCase
を確認します。