SU | MO | TU | WE | TH | FR | SA |
---|---|---|---|---|---|---|
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 | 1 | 2 | 3 | 4 | 5 | 6 |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
前に作ったClojureScriptのコードをいじろうとして、やり方忘れていたので再勉強。
create-cljs-app
を使って作ったやつだった。shadow-cljs.edn
がプロジェクトファイルで、ここに依存関係とかプロジェクト構成とか入ってる。card
とかe2e
とか理解してないものがあるので調べた。
詳しくはここ
ただのカードコンポーネントではない。
UIの状態をテストケースとして書くと、それぞれの状態をカードの中で表示してくれる。
UIの見た目を一覧確認しながらコードを修正できる。
自分のコードはreagent-material-ui
のまんまだから、あんまり利点はないかな。
Taiko
というnode.js
で動くappium
的なテストが用意されている。
JavaScriptなのでClojureScriptからだとそのまま呼べる。
cljs.test
というのが組込みで用意されている。
テストの実行は、まずテストコードをJavaScriptにコンパイルする必要がある。$ shadow-cljs compile <プロジェクト構成名:test>
これで複数のcljsから1つのjsにバンドルしたtest.js
が生成される。
これを$ node test.js
とすることでテストが実行される。
Jestなんていらんかったんや。
テストコードは超シンプル。
(ns my-project.tests
(:require [cljs.test :refer-macros [deftest is testing run-tests]]))
(deftest test-numbers
(is (= 1 1)))
clj-kondo
というlinterがcreate-cljs-app
にはデフォルトで入っている。zprint-clj
というautofixがcreate-cljs-app
にはデフォルトで入っている。
悩まなくていいのはうれしい。
M-x cider-jack-in-cljs
でREPLとWebサーバが起動する。
このWebサーバはwatchが有効なので、ホットリロードできる。
ホットリロードがあるから、あんまりREPLの活躍ない気がする。
もう少しユニットテストとかと組み合わせた開発者体験してみないとわからないか。