我想写一个基于属性的单元测试来证明整数减法是不可交换的。我有 mocha 和fast-check:
const fc = require('fast-check')
describe('The subtraction', () => {
it('is not commutative', () => {
fc.assert(
fc.property(
fc.integer(), fc.integer(), (a, b) => a - b !== b - a
)
)
})
})
几次运行后,我注意到当条件a === b && a <= 0
为真时它会失败。但是,我不确定是否还有其他不符合的条件a - b !== b - a
,因此我不确定排除该特定条件是否正确。
我该如何编写测试?我应该排除特定条件吗?或者我应该检查a - b !== b - a
至少两个给定值是否为真?或者有其他方法可以测试吗?
也欢迎使用任何其他类型的 javascript 库进行基于属性的测试的示例。