gpt4 book ai didi

java - 如何使用Junit测试对象是否被修改?

转载 作者:行者123 更新时间:2023-11-29 04:31:25 24 4
gpt4 key购买 nike

我有一个方法。

void (Item item) {
}

我想在 Junit 中测试项目是否已被修改。谁能告诉我该怎么做?

最佳答案

一个方法必须有一个名字。
所以我们假设你的意思是:

void do (Item item) {
}

在测试方法中,您可以在执行方法之前通过对其执行深拷贝来存储项目的状态。
然后你执行这个方法。
最后,方法返回后,您可以检查副本和实际对象在您要比较的字段中是否具有相同的值。

例如,通过在 Item 中添加一个复制构造函数来对其进行深度复制,您可以这样写:

@Test
public void doWhenItemIsModified (Item item) {
Item copyItem = item.deepCopy(item);
instanceUnderTest.do(item);
Assert.assertNotEquals(copyItem.getMyField(), item.getMyField())
... // assert other fields...
}

编辑评论:
您可以在 Item 类中实现深度复制,最好在 Item 的 API 中公开此构造函数。
如果不是这种情况,您可以在实用程序测试类中添加 deepcopy 方法。
你可以这样写:Item copyItem = UtilTest.deepCopyItem(item);

关于java - 如何使用Junit测试对象是否被修改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43666061/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com