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