假设我有一个函数应该在一个案例中计算一些值 否则抛出异常。我想用QuickCheck确保我的 函数行为正确,但是如何执行此排序并不明显 检查。是否可能,如果是,如何检查某些例外情况 抛出类型,它包含有关其原因的正确信息?
答案 0 :(得分:0)
确实ioProperty
是此类测试的关键。您需要将其与catch
或try
结合使用。我在这里展示后者:
prop_exceptional :: Int -> Property
prop_exceptional n = ioProperty $ do
result <- try . evaluate $ myDangerousFunction n
return $ r === result
where r | n == 0 = Left MyException
| otherwise = Right 42
很明显,myDangerousFunction
每当MyException
获得0
时就会抛出42
,否则会返回IO
。请注意有用的函数evaluate
,您需要使用它来评估$deletequery = '
DELIMITER //
CREATE TRIGGER after_insert_job_sent
AFTER INSERT
ON Envato_CustomConfig_job_sent FOR EACH ROW
BEGIN
DELETE FROM `Envato_CustomConfig_Job_Queue`
WHERE Job_ID = '.$value['Job_ID'].'
AND email -'.$value['email'].';
UPDATE `envato_customconfig_job_status` SET `email_Sent_Count`= email_Sent_Count+1
WHERE Job_ID = '.$value['Job_ID'].'
END; //
DELIMITER;
insert into Envato_CustomConfig_job_sent
values ( NULL , '.$value['Job_ID'].', '.$value['email'].', now();
';
上下文中的纯函数以捕获在那里生成的异常。