1

我是突变测试的新手。我使用 Stryker 库来生成和运行测试。但是一些突变打破了代码表达式之间的整个逻辑。例如,

// 真实代码

if (!(typeof age == 'number' && Math.trunc(age) == age)) throw new Error('age must be a whole number');

// 来自 Stryker 的变异代码

if (!(true && Math.trunc(age) == age)) throw new Error('age must be a whole number');

由于快捷方式 And 运算符,永远不会执行If typeof age == 'number'is false 。但是 Stryker 创建了一个突变体,它假定必须在何时执行,并且某些测试用例必须失败。Math.trunc(age) == age&&Math.trunc(age) == agetypeof age == 'number'false

这种情况正常吗?在这种情况下我该怎么办?我应该忽略突变体吗?

谢谢。

4

0 回答 0