
25 May
2006
25 May
'06
3:28 p.m.
Mike Gunter wrote:
I'd like to use QuickCheck on IO code. For instance, I'd like to check a property of type String -> IO Bool.
Using unsafePerformIO seems straightforward (though I haven't written the code, so I may be wrong about that) and it might be possible to make a solution involving unsafeInterleaveIO work. Short of rewriting QuickCheck, is there any way to check IO code "safely"?
To use QuickCheck on IO you would need an instance of Arbitrary that can generate arbitrary states of the world :) If you ignore that you could, for example, make tests that depends on some files existing outside the program. To me that sounds like a bad idea, or at least outside the realm of QuickCheck. Twan