How to use assertTrue?

I have:

package com.darlik.test;
import org.junit.Assert;
public class Test { public static void main(String[] args) { assertTrue(1, 2); }
}

package with org.junit is set and working but in line with assertTrue i have error:

The method assertTrue(int, int) is undefined for the type Test

Why? I use Eclipse.

3

5 Answers

assertTrue is based on a single boolean condition. For example

assertTrue(1 == 2);

You need to import the statement statically to use

import static org.junit.Assert.assertTrue;

Typically, however assertEquals is used when comparing 2 parameters, e.g.

public class MyTest { @Test public void testAssert() throws Exception { assertEquals(1, 2); }
}

You have to specify the class that defines that method:

Assert.assertTrue(condition);

Furthermore you're calling the method with 2 parameters which makes no sense. assertTrue expects a single boolean expression.

Although you can also do this by using a static import:

import static org.junit.Assert.*;

which will allow you to call it as assertTrue(condition); instead.

From the doc : assertTrue(boolean) or assertTrue(String, boolean) if you want to add a message.

AssertTrue assert that a condition is true, you still have to code such condition for it to be evaluated at runtime.

Better try assertThat with matchers. Check this blog about it

import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
.... @Test public void testNum() { assertThat(repo.getNum(), is(equalTo(111)));
}

Delete the module-info.java file if there is any in the project. It's not necessary and is only used if you're using Java's built-in module system.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like