Ankur
Ankur

Reputation: 11739

Junit method not found

I'm trying to build a sample test class using junit framework.
I've downloaded junit4.9b3.
When I try to complie my test class I get the following error:-

javac -cp ".;C:\Documents and Settings\user\Desktop\junit\junit4.9b3\junit-4.9b3.jar"     
TestSubscription.java    
TestSubscription.java:10: cannot find symbol    
symbol  : method assertTrue(boolean)    
location: class TestSubscription    
            assertTrue(s.pricePerMonth()==100.0);        
            ^
TestSubscription.java:17: cannot find symbol    
symbol  : method assertTrue(boolean)    
location: class TestSubscription    
            assertTrue(s.pricePerMonth()==66.67);
            ^
2 errors

Looks like assertTrue is not available but the junit javadoc mentions this method.
I'm using the import as follows

import org.junit.*;     
import org.junit.Assert.*;

Any ideas?

Upvotes: 25

Views: 38674

Answers (2)

Jon Skeet
Jon Skeet

Reputation: 1500015

You've imported the types, but not used a static import to make the members available without qualification. If you use:

import static org.junit.Assert.*;

then that should statically import all the static methods in the Assert class, so you can write assertTrue instead of Assert.assertTrue.

Note that presumably Assert itself has nested types, otherwise I'd have expected your "normal" import to fail.

Upvotes: 52

Thomas Jung
Thomas Jung

Reputation: 33092

You have to do a static import.

import static org.junit.Assert.*;

Upvotes: 10

Related Questions