0

我目前正在为我的程序编写 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 是否为空?

真的很感谢你的回答!!!

4

5 回答 5

3

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

与 jUnit 或 Eclipse 无关。

也许你想要这样的东西:

handler.updateProdukt(p);
assertEquals("has been updated", theNewExpectedValue,  p.getSomeValue());  
于 2012-09-27T08:44:32.173 回答
1

它不仅仅是这样

handler.updateProdukt(p)

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

int handler.updateProdukt(p)
于 2012-09-27T08:44:45.890 回答
0

这是因为您的updateProdukt方法返回 void。将其更改为返回一些东西,例如 aboolean或 an int,然后您可以在 a 中使用它assert

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

于 2012-09-27T08:44:11.197 回答
0

你的updateProdukt()回报是什么?退货不是无效吗?

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

于 2012-09-27T08:44:57.903 回答
0

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

assertFalse(handler.updateProdukt(p).equals(0));
于 2012-09-27T09:05:18.293 回答