我正在定义一个TestList(HUnit),并希望将定义分布在多行上.我来到以下解决方案:
tests = TestList ([TestLabel "test1" test1] ++
[TestLabel "test2" test2] ++
[TestLabel "test3" test3] ++
[TestLabel "test4" test4] ++
[TestLabel "test5" test5])
Run Code Online (Sandbox Code Playgroud)
++操作员是否正确地做这些事情?eph*_*ent 23
我会写的
tests = TestList
[ TestLabel "test1" test1
, TestLabel "test2" test2
, TestLabel "test3" test3
, TestLabel "test4" test4
, TestLabel "test5" test5 ]
Run Code Online (Sandbox Code Playgroud)
npo*_*cop 10
@ephemient变体还有改进的地方:根本不使用TestLabel,使用~:快捷方式:
tests = TestList
[ "test1" ~: test1
, "test2" ~: test2
, "test3" ~: test3
, "test4" ~: test4
, "test5" ~: test5 ]
Run Code Online (Sandbox Code Playgroud)
请注意,有更多的运营商构建断言:@?,@=?,@?=.有关详细信息,请参阅http://hunit.sourceforge.net/HUnit-1.0/Guide.html或http://hackage.haskell.org/package/HUnit.快捷方式巧妙地使用优先级和类型类,因此您将以更差的错误消息为代价获得更少的括号噪声.
也许我错过了什么,但为什么不只是逗号?这似乎与正常列表不同.
tests = TestList ([TestLabel "test1" test1,
TestLabel "test2" test2,
TestLabel "test3" test3,
TestLabel "test4" test4,
TestLabel "test5" test5])
Run Code Online (Sandbox Code Playgroud)