Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Junit4 + Spring 2.5 : Asserts throw "NoClassDefFoundError"

I've been coding tests in Junit4 with Spring, and I got this funny behavior:

If my tests are passing like this, everything is fine:

@Test
public void truthTest(){

    assertTrue(true); //Ok

}

But, if my test fails:

@Test
public void truthTest(){

    assertTrue(false); //ERROR

}

Then instead of a test failure I receive an ugly and cryptic stack trace, This is it:

http://pastie.org/429912

Sorry for this ugly dump, but its the only data I've got to explain the problem (I "pastied" it for readability)

I'm really puzzled, has anyone encountered this kind of problem before? Thanks in advance!

like image 915
Pablo Fernandez Avatar asked Mar 28 '09 17:03

Pablo Fernandez


2 Answers

http://jira.springframework.org/browse/SPR-5145

It is an known issue with spring-test 2.5.x. It is incompatible with JUnit 4.5. Use 4.0-4.4.

Or you can try the patch in the issue tracker.

like image 119
lsiu Avatar answered Oct 04 '22 23:10

lsiu


I had the same problem when I wrote my Spring JUnit tests. Like a lot of posts available online, there are only two alternatives

1) Stay up to date with the Spring version and use the latest version of JUnit or 2) Leave your current Spring version and use JUnit version 4.4 or less.

I chose the option # 2 where we left our Spring version at 2.5 and downloaded JUnit 4.4. Everything worked fine after that.

Also another point to be aware of is that if your project i.e., the project A you are writing your tests in has a dependency on another project B that has another version of Spring, you would get a similar error too. I learnt it the hard way.

-Prashanth

like image 38
user1178881 Avatar answered Oct 04 '22 22:10

user1178881