【问题标题】:How to use assertTrue?如何使用assertTrue?
【发布时间】:2014-08-17 18:30:01
【问题描述】:

我有:

package com.darlik.test;

import org.junit.Assert;

public class Test {

    public static void main(String[] args) {
        assertTrue(1, 2);
    }

}

带有 org.junit 的包已设置并正常工作,但符合 assertTrue 我有错误:

方法 assertTrue(int, int) 未定义为 Test 类型

为什么?我使用 Eclipse。

【问题讨论】:

  • assertTrue 具有方法签名assertTrue(boolean),即assertTrue(actual == expected),参见junit.sourceforge.net/javadoc/org/junit/…
  • 为什么要使用main?请用测试注释,即使在示例中也更有意义。第二件事,你没有适当的进口。请按照@Reimeus 的建议修复导入+更改您在里面比较的内容
  • @MichalGruca 好点 - 还要记得重命名该类,因为它与 org.junit.Test 冲突

标签: java eclipse junit


【解决方案1】:

assertTrue 基于单个布尔条件。例如

assertTrue(1 == 2);

需要静态导入语句才能使用

import static org.junit.Assert.assertTrue;

不过,assertEquals 通常在比较 2 个参数时使用,例如

public class MyTest {

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

【讨论】:

    【解决方案2】:

    您必须指定定义该方法的类:

    Assert.assertTrue(condition);
    

    此外,您使用 2 个参数调用该方法,这没有任何意义。 assertTrue 需要一个布尔表达式。

    虽然您也可以使用静态导入来做到这一点:

    import static org.junit.Assert.*;
    

    这将允许您将其称为 assertTrue(condition);

    【讨论】:

      【解决方案3】:

      来自文档:assertTrue(boolean)assertTrue(String, boolean),如果您想添加消息。

      AssertTrue 断言 条件 为真,您仍然必须编写这样的条件代码,以便在运行时对其进行评估

      【讨论】:

        【解决方案4】:

        最好使用匹配器尝试 assertThat。查看此博客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)));
        }
        

        【讨论】:

          【解决方案5】:

          如果项目中有module-info.java文件,请删除。这不是必需的,仅在您使用 Java 的内置模块系统时使用。

          【讨论】:

            猜你喜欢
            • 2014-04-10
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-03-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多