为什么'断言'在junit测试中没有失败

时间:2015-12-28 04:39:56

标签: java unit-testing junit mockito powermock

我在代码中使用了'assert'。

@RunWith(PowerMockRunner.class)
@PrepareForTest({ Puppy.class })
public class PuppyTest {

    @Test
    public void testCreatePuppy() {
        // Mocking
        Human human = Mockito.mock(Human.class);
        Puppy puppy = Puppy.createPuppy("Gatsby", human);
        assert(null!=puppy);
        assert("Gatsby1".equals(puppy.getName()));
        assert false;   //This should fail anyway
    }

  .....

} 

但是,即使对于虚假的条件,断言也不会失败。 如果我使用Assert类方法,它按预期工作。

  @Test
    public void testCreatePuppy() {
        // Mocking
        Human human = Mockito.mock(Human.class);
        Puppy puppy = Puppy.createPuppy("Gatsby", human);
        Assert.assertNotNull(puppy);
        Assert.assertEquals("Gatsby1",puppy.getName());
  }

我们不能在Junit测试用例中使用assert吗?

更新:

我通过将-ea作为vm参数传递来启用断言。它奏效了。 :)

enter image description here

1 个答案:

答案 0 :(得分:3)

要使java断言起作用,您需要使用-ea标志运行application / test。尝试使用-ea标志。其中Assert是特定于JUnit的并声明该语句而与java断言无关。