0
A
回答
0
您的测试方法必须编排调用所有单个实现,然后进行投票。这是确保每个实现都以相同的输入进行测试并确保输出与其他所有输出进行比较的唯一方法。
0
做一个发电机为您的功能实现,并让ScalaCheck随机既实现和输入。事情是这样的概念代码:
type Input = ...
type Output = ...
trait Algorithm {
def apply(input: Input): Output
}
val funA: Algorithm = ...
val funB: Algorithm = ...
val funC: Algorithm = ...
val funD: Algorithm = ...
import org.scalacheck._
import Prop.BooleanOperators // for the ==> operator
genInput: Gen[Input] = ...
genAlgorithm: Gen[Algorithm] = Gen.oneOf(funA, funB, funC, funD)
propAlgorithm = Prop.forAll(genAlgorithm, genAlgorithm, genInput) {
case (f, g, x) => (f != g) ==> f(x) == g(x)
}
为了使错误报告的帮助,你应该也有一个合理的toString
方法上Algorithm
。
相关问题
- 1. 冗余__packed__属性
- 2. 检查用户是否投票投票
- 3. SQL复合属性和冗余
- 4. 冗余代码检查
- 5. 冗余条件检查5
- 6. PHP性能和冗余
- 7. 正常化消除冗余属性
- 8. Cassandra:Geo冗余性和一致性
- 9. HDFS和冗余
- 10. eclipse中的冗余null检查kepler
- 11. Eclipse检查冗余方法调用
- 12. 如何检查此陈述的冗余?
- 13. 检查用户是否投票,如果不保存投票
- 14. 如何检查用户是否已投票进行投票?
- 15. virtualbool hasVoted来自虚拟投票属性
- 16. JSON冗余数据检索
- 17. Android Studio中给出了冗余投警告,但它不是真正的冗余
- 18. 使用asp.net和sql投票投票
- 19. 投票投票墙
- 20. 检查客户是否已投票
- 21. 检查是否有人投票
- 22. I2C EEPROM中的冗余值和冗余系统
- 23. 的Rails充当可投票检查,如果用户登录到投票
- 24. 投票与长投票
- 25. 投票重复投票
- 26. 网站 - 冗余和故障
- 27. Cassandra和ConsistencyLevel问题(冗余)
- 28. 投票 - 票数与投票率?
- 29. 自定义RoleVoter和访问UserRole的额外投票检查
- 30. CLR类冗余
建议的方法存在一些不便之处。它没有针对每个实现的单独报告。当测试失败时,我只知道其中一个与另一个不同步,并且我不知道哪一个知道。这种方法存在更大的问题:如果测试用例失败并出现异常,或者用无限循环超时,所有测试用例都会中止。 – ayvango