How to use assertTrue?

£可爱£侵袭症+ 提交于 2020-07-05 07:35:32

问题


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.


回答1:


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);
   }
}



回答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.




回答3:


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.




回答4:


Better try assertThat with matchers. Check this blog about it https://objectpartners.com/2013/09/18/the-benefits-of-using-assertthat-over-other-assert-methods-in-unit-tests/

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)));
}


来源:https://stackoverflow.com/questions/25352329/how-to-use-asserttrue

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