gpt4 book ai didi

java - 突变杀伤

转载 作者:行者123 更新时间:2023-11-30 08:32:28 26 4
gpt4 key购买 nike

我卡在了 1 点,需要建议。

在为我的代码编写 junit 时,我无法终止 ValidateArgument.notNull(arg1) 突变!!!
需要建议。

代码如下..

public class A{

public void method1(Object B){

ValidateArgument.notNull(B);
..
..
..
}
}

获取

## removed call to com/nokia/oss/configurator/rac/common/util/ValidateArgument::notNull → SURVIVED

因为返回类型是 void 有什么可能的方法来杀死这个突变?

最佳答案

ValidateArgument.notNull(B); 的目的是什么?

我们从您的测试中得知,它在传递 null 时会抛出 NullPointerException,这就是您关心的所有事情吗?

如果是这样,您应该删除那行代码,因为它没有用 - 当您调用 method1 时,您仍然会得到 NullPointerException。即您的测试指定的行为是相同的。

或者也许 ValidateArgument.notNull 做了其他对您重要的事情?也许它会生成一条您认为有用的异常消息?如果是这样,您需要编写一个测试来确认消息是否存在。

然而,许多程序员不会编写指定断言行为的测试(这样做是否有意义取决于您工作的上下文/领域)。

Pitest 具有一项功能,可让您避免在通常不经过单元测试的关注点(另一个常见的问题是日志记录)中创建突变。

如果将 full.package.name.ValidateArgument 添加到 avoidCallsTo 配置参数中,将不再产生此突变。

关于java - 突变杀伤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40121772/

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