Ruby - > Haskell单元和自动验收测试

Ste*_*sen 4 bdd haskell unit-testing acceptance-testing

我是一名具有多种语言背景的程序员,但最近专注于Ruby/Rails并且有兴趣学习一些Haskell.我已经在Closure中做了一些游戏(虽然很基本的东西).

我目前开发新Ruby应用程序的首选方法是从使用Gherkin/Cucumber之类的业务价值语言开始高级测试,然后使用RSpec或Minitest等开发小规模组件.什么是(目前)开发新Haskell应用程序最常用的类似工具集和策略?

响应者:请耐心等待我的投票和回答.我必须在Haskell中做一些工作才能进行任何评估.谢谢.

Mar*_*ton 7

通常,Haskell应用程序中的事实来源是类型系统.您可以使用quickcheck和hspec来确保您的代码符合您的想法,但这只是一种帮助.

  • 马克+1.这是迄今为止最常见的设计方法:在类型系统中设计业务逻辑; 然后编写不可在类型中表达为QuickCheck属性的不变量.对于剩下的任何东西,使用HUnit等进行单元测试 (5认同)
  • 关于TDD:(0)许多动态语言专家都没有意识到像GHC这样的类型系统能够实施多少.(我也不是.)(1)同样适用于测试,但表达类型/证明具有静态的优点,因此排除了大量的错误; (2)之前尝试过在Ruby中编程,我觉得依靠纯度和丰富类型系统(以后需要测试)比使用测试试图覆盖类型系统排除的所有错误代码路径更有信心.(3)类型和/或证据驱动的开发符合相同的目标,静态保证有助于避免伪造的API. (2认同)