| 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の活躍ない気がする。
もう少しユニットテストとかと組み合わせた開発者体験してみないとわからないか。