受到Haskell自动生成(随机)给定类型实例的优雅方式的启发,例如在QuickCheck中,我正在尝试弄清楚如何编写一个as-easy-to-use-as-可能的C++基准测试框架。我想我将使用函数模板,可能会借助C++11中的新功能,例如可变参数模板。我希望我只需要指定一个函数或更好的函数模板和一个与函数的参数兼容的STL模板容器类型(反过来它的value_type)。我认为,使用一组不同大小的输入对函数进行基准测试有点类似于C++11中线程的设置和生成方式。我的第一个尝试是复制thread类的构造函数并将其转换为benchmark函数作为templateinlinevoidben
我想生成随机的浮标快速检查仅限于一定范围,例如0.0至1.0用于测试概率工作的功能。我希望能够做一些成功的事情:quickcheck!{fnprop(x:f64,y:f64)->bool{assert!(x看答案创建一个代表您所需范围的新类型,然后实现quickcheck::Arbitrary为了它:#[macro_use]externcratequickcheck;#[derive(Debug,Copy,Clone)]structProbability(f64);implquickcheck::ArbitraryforProbability{fnarbitrary(g:&mutG)->Sel
在各种更基于函数的语言中,有一些工具(如Quickcheck)允许propertybasedtesting.我将如何在PHP中进行基于属性的测试?我希望能够指定PHP方法的输入和输出属性,并运行覆盖率测试。 最佳答案 目前有两个库在PHP中提供基于属性的测试功能:Eris这是一个基于Haskell的QuickCheckPhpQuickCheck这是一个基于clojure.test.check的PHP端口。Eris的构建旨在开箱即用地与PHPUnit生态系统协同工作。PhpQuickCheck被构建为独立工作,但也可以与PhpUnit
几年前,一个名为Agitar的Java测试工具很受欢迎。它似乎在做一些类似于基于属性的测试。如今-基于属性的测试基于Haskell'sQuickcheck很受欢迎。Java有许多端口,包括:quickcheckjcheckjunit-quickcheck我的问题是:Agitar和基于Quickcheck属性的测试有什么区别? 最佳答案 对我来说,HaskellQuickCheck的主要特性是:它生成用于测试的随机数据如果测试失败,它会反复“收缩”数据(例如,将数字更改为零,减少列表的大小)直到它找到仍然失败的最简单的测试用例。这非常
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题吗?更新问题,以便editingthispost提供事实和引用来回答它.关闭7年前。ImprovethisquestionQuickcheck及其变体(即使Java中有一个),似乎很有趣。然而,除了学术兴趣之外,它在真正的应用程序测试中是否真的有用(例如,GUI应用程序或客户端/服务器,甚至是StackOverflow本身)?感谢您对类似测试生成器的任何体验。 最佳答案 是的,好吧。实际上没有,但我曾师从最初开发QuickCheck的人,他是一个非常有趣的