2025年8月13日水曜日

Haskell入門 P314 HUnitによる自動テスト

 テストファーストの考え方をとっているようで、最初にテストの方法がでていた。
ただ、本の内容はバージョンが古くそのままでは動かなかった。
・Test suite not yet implementedとでるので
  package.yamlにtest:hjq-test:dependencies:のところに - HUnitを追加
  Spec.hs の先頭にimport Test.HUnit 追加
・文字エンコードでエラーがでるので
  Dosプロンプトのショートカットに cmd /k "chcp 65001 &&  cd パス"のように、事前にエンコード切り替えをいれる
・runTestTTの型が新しいバージョンでは 返り値が IO Countsというものらしいので
 以下のようなコードにするらしい。

import Test.HUnit
import System.Exit (exitFailure, exitSuccess)
main :: IO ()
main = do
    counts <- runTestTT $ "Test1" ~: 1 + 1 ~?= 2
    if errors counts + failures counts == 0
        then exitSuccess
        else exitFailure

これで、ようやく、うまく動作した。

0 件のコメント:

コメントを投稿