junit assertEquals ignore case

房东的猫 提交于 2019-12-01 14:57:53

I find that Hamcrest provides must better assertions than the default JUnit asserts. Hamcrest gives MANY MANY more options and provides better messages on failure. Some basic Hamcrest matchers are built into JUnit and JUnit has the assertThat built in so this is not something totally new. See the hamcrest.core package in the JUnit API here. Try IsEqualIgnoringCase which would look like this.

assertThat(myString, IsEqualIgnoringCase.equalToIgnoringCase(expected));

With static imports this would be

assertThat(myString, equalToIgnoringCase(expected));

if you want to get really fancy you would do:

assertThat(myString, is(equalToIgnoringCase(expected)));

One of the advantages of this is that a failure would state that expected someString but was someOtherString. As opposed to expected true got false when using assertTrue.

Use

"blabla".equalsIgnoreCase("BlabLA") use for check equality ignore case

Then you can use

 assertTrue("blabla".equalsIgnoreCase("BlabLA"))

There is no direct support for this assert in JUnit (assuming you are using JUnit of course), but you could use:

assertTrue("blabla".equalsIgnoreCase("BlabLA"))

It may be worth wrapping this in a separate helper method which provides a sensible failure message if they don't match (look at the docs for assertTrue to see how this could be done).

What about:

assertEquals("blabla","BlabLA".toLowerCase());

or

assertEquals(expectedLowerCaseString,actualString.toLowerCase());

Then you can still see the difference if they are not equal.

Have you looked at the String JavaDoc ?

"blabla".equalsIgnoreCase("BlabLA")
dynamix

You can use assertTrue(s1.equalsIgnoreCase(s2))

Consider AssertJ (previously FEST) for your assertions, it's been my favorite assertion API for tests for years:

assertThat("blabla").isEqualToIgnoringCase("BlabLA");

Check the equalsIgnoreCase from the string doc:

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!