作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我卡在了 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/
我是一名优秀的程序员,十分优秀!