我想编写一个基于属性的单元测试,以证明整数减法不是可交换的。我有摩卡咖啡和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库进行基于属性的测试的示例。