Java 这个junit测试有必要吗?

Java 这个junit测试有必要吗?,java,junit,Java,Junit,我的测试经验主要是Ruby的Rspec。我最近试图编写一个Java jUnit测试。这里有一个例子。然后我开始怀疑这个测试是否有必要。因为properties()将基于方法签名返回properties或null。因此,如果我想测试这个方法,我所要做的就是测试返回值是否不是null public class HelperTest { @Test public void testProperties() { assertThat(Helper.properties(), instan

我的测试经验主要是Ruby的Rspec。我最近试图编写一个Java jUnit测试。这里有一个例子。然后我开始怀疑这个测试是否有必要。因为
properties()
将基于方法签名返回
properties
null
。因此,如果我想测试这个方法,我所要做的就是测试返回值是否不是null

public class HelperTest  {
@Test
public void testProperties() {
       assertThat(Helper.properties(), instanceOf(Properties.class));
    }
}


public class Helper {
   public static Properties properties() {
            // ... some code to init properties ...
           return properties;
    }
}

谢谢大家的评论。让我试着根据评论回答我的问题

这是新的测试:

public void testProperties() {
    assertThat(Helper.properties(), is(notNullValue()));
}

我将简单地测试以确保该方法没有返回空值。如果该方法返回非null值,则它将是属性的实例。这意味着不需要测试该方法是否返回属性的实例。

assertNotNull(…)有什么问题吗?。。。或者
assertThat(Helper.properties()).isNotNull()
?一个永远不会失败的测试,只会给人一种错误的安全感。大家好,我已经根据你们的评论创建了一个答案。如果我错了,请纠正我。谢谢但您说过它也可以返回null,具体取决于签名。如果它返回一个非空值,它肯定会返回一个属性-根据定义,它必须返回。但是你说它也可以返回一个空值,这取决于签名。如果它返回一个非空值,它肯定会返回一个属性——根据定义,它必须返回。Hey@DaveNewton 1)因为断言要求该方法返回一个非空值2),而签名明确要求返回一个属性。这意味着非空值肯定是一个属性。我可以说,该方法返回一个非null值对于测试来说已经足够了,因为非null值肯定是一个属性。如果您对此有更多的意见,我们将不胜感激!