JUnit - assertFalse除了==运算符之外没有?

时间:2012-09-27 08:43:10

标签: java eclipse unit-testing testing junit

我目前正在为我的程序编写junit测试。

我的一项测试更新了现有产品。这是代码:

@Test
public void testUpdate(){
    Produkt p = new Produkt(1, "apple", "food", true, 2.00, false, true);
    assertFalse(handler.updateProdukt(p)==0);;  
} 

但是eclispe总是说:

  

对于参数类型void,int

,运算符==未定义

如果我写null就没有任何改变......

是否有可能测试updatedProdukt是否为null?

我真的很赞赏你的答案!!!

5 个答案:

答案 0 :(得分:3)

您的方法是void。它不返回任何内容,因此返回值不能用于赋值或表达式。

与jUnit或Eclipse无关。

也许你想要这样的东西:

handler.updateProdukt(p);
assertEquals("has been updated", theNewExpectedValue,  p.getSomeValue());  

答案 1 :(得分:1)

它不仅仅是那个

handler.updateProdukt(p)

不返回任何值,您需要将签名更改为

int handler.updateProdukt(p)

答案 2 :(得分:0)

这是因为您的updateProdukt方法返回void。改变它以返回例如booleanint,然后您可以在assert中使用它。

问题是:updateProdukt做什么以及您希望测试什么?如果它正在更新指定的产品,那么您应该返回boolean(true或false)以指示指定的产品是否已成功更新。或者,返回已更新的Product,如果没有更新产品,则返回null。

答案 3 :(得分:0)

updateProdukt()的回报是什么? Isn还没有回归?

您需要从updateProdukt()返回一些内容才能使用== operator。

答案 4 :(得分:0)

如果返回int或Strings或Long值,请尝试以下代码。

assertFalse(handler.updateProdukt(p).equals(0));