Haskell這裏的初學者。Haskell,IO,monads,quickcheck
我有一個函數和一堆屬性來測試它與我使用quickcheck寫的。當我在解釋器中單獨運行這些屬性時,這些屬性可以正常工作,並且函數可以正常工作。
但是,手動快速檢查解釋器中的每個屬性(quickCheck prop_this,quickCheck prop_that)都很無聊,單調且耗時。我想將所有這些都放在一個程序中,並讓該程序運行所有的快速檢查。這是我卡住的地方。
該方案的基本骨架如下:
imports...
function_which_i_want_to_quickcheck
prop_1
prop_2
etc...
main = do
quickCheck prop_1
quickCheck prop_2
etc...
上面的一切主要是罰款,我相信,因爲它所有編譯並沒有它的工作原理。主要是我需要幫助。我嘗試了幾個變種,即沒有做,使用do,使用'x < - quickCheck y'分配結果,從內部移除quickCheck並將其粘在外部等等,但不能獲得任何東西工作。
任何人都可以協助上述嗎?
如果我想將main內的所有內容移動到另一個(正常,非主)函數,我該怎麼做?
編輯:我很欣賞的測試框架的建議,但我要問這裏是微不足道的任何其他語言做的,不應該需要一個測試框架。爲什麼不是Haskell?
此外,這在解釋器內正確工作。我無法在主內部工作。任何想法爲什麼?
quickCheck prop_1 >> quickCheck prop_2 >> quickCheck prop_3
謝謝。
如果您的所有屬性都屬於同一類型,那麼您可以將它們放在列表中並執行'mapM_'。 – Sibi
診斷代碼的問題並不是很容易,因爲無法看到有人看不到的錯誤。哈斯克勒擁有超級大國,但有限制。 –
你有你需要診斷的所有信息。閱讀這個問題。我說過主要工作的所有功能和代碼。至於main,它是一系列「quickcheck blah」。你是說你需要真正的功能名稱,或者你無法診斷? – user3355020