搭建haskell 环境
我最近在Haskell使用了保龄球鞋 。 在此过程中,我发现了如何设置环境以轻松进行“测试驱动开发”。 希望其他人可以发现这篇文章对开始使用该语言有所帮助。 我使用了以下组件:
- Haskell安装: Haskell Platform 。 这也为您提供了GHCi,您可以将其用作交互式环境和类型检查器。
- IDE:任何编辑器都足够,但是我使用了Visual Studio Code,因为它们具有Haskell的扩展,为我提供了一些基本的IntelliSense功能。
- 测试库: Hspec ,它基于RSpec 。 可以使用Haskell的软件包管理器cabal从命令行使用
cabal install hspec
进行cabal install hspec
。 - 助手库:Printf用于彩色命令行输出。
使用Hspec文档中的示例,我从代码的以下结构开始:
保龄球测试
module BowlingTests where
import Bowling
import Test.Hspec
import Text.Printf (printf)
testScoreGame :: String -> Int -> Spec
testScoreGame game score =
it (printf “should return the score for game : %s → %d \n” game score) $
scoreGame game `shouldBe` score
main = hspec $ do
describe "scoreGame" $ do
testScoreGame "--------------------" 0
因此,要测试功能,请在测试文件中添加一个功能,通常是带有“ test”前缀的相同名称。 此函数将被测函数的输入和预期输出作为参数。 然后使用Hspec描述您要测试的内容。 如您所见,“ it”部分写在测试函数中。 当然,您可以省略此辅助函数,并在main = hspec $ do
下编写所有测试,如果您想更详细地描述每个测试正在测试的内容,则可能会更好。
保龄球
module Bowling where
scoreGame :: String -> Int
scoreGame game = 0
这些文件位于同一目录中,现在我可以从命令行运行测试了。
$ runhaskell BowlingTests.hs
scoreGame
should return the score for game : — — — — — — — — — — → 0
Finished in 0.0000 seconds
1 example, 0 failures
你有它。 现在,我可以专注于编写失败的测试并使其通过。
翻译自: https://www.javacodegeeks.com/2016/05/simple-tdd-environment-haskell.html
搭建haskell 环境