Ответ 1
Я бы написал
tests = TestList
[ TestLabel "test1" test1
, TestLabel "test2" test2
, TestLabel "test3" test3
, TestLabel "test4" test4
, TestLabel "test5" test5 ]
Я определяю TestList (HUnit) и хочу распространять определение по нескольким строкам. Я пришел к следующему решению:
tests = TestList ([TestLabel "test1" test1] ++
[TestLabel "test2" test2] ++
[TestLabel "test3" test3] ++
[TestLabel "test4" test4] ++
[TestLabel "test5" test5])
++
правильным способом выполнения таких действий?Я бы написал
tests = TestList
[ TestLabel "test1" test1
, TestLabel "test2" test2
, TestLabel "test3" test3
, TestLabel "test4" test4
, TestLabel "test5" test5 ]
Там по-прежнему есть улучшения для варианта @ephemient: вообще не используйте TestLabel
, используйте ~:
ярлык:
tests = TestList
[ "test1" ~: test1
, "test2" ~: test2
, "test3" ~: test3
, "test4" ~: test4
, "test5" ~: test5 ]
Обратите внимание, что для построения утверждений существует больше операторов: @?
, @=?
, @?=
. Подробнее см. 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])