我目前正在为我的程序编写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?
我真的很赞赏你的答案!!!
答案 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。改变它以返回例如boolean
或int
,然后您可以在assert
中使用它。
问题是:updateProdukt
做什么以及您希望测试什么?如果它正在更新指定的产品,那么您应该返回boolean
(true或false)以指示指定的产品是否已成功更新。或者,返回已更新的Product
,如果没有更新产品,则返回null。
答案 3 :(得分:0)
您updateProdukt()
的回报是什么? Isn还没有回归?
您需要从updateProdukt()返回一些内容才能使用== operator。
答案 4 :(得分:0)
如果返回int或Strings或Long值,请尝试以下代码。
assertFalse(handler.updateProdukt(p).equals(0));