モデル作成などで全要素をみるのが辛いので、出力結果をパターンマッチでみたい
- // いつもの
phx.gen.auth
をみてみ… doctestじゃなかった
結論
- 直接は使えない
- パターンマッチした結果でもって評価するといい。なるほど
やりたいくてもできない例
iex> Accounts.create_user(%{name: "hoge"})
%Accounts.User{name: "hoge"}
代替例(イメージ)
iex> {status, %Accounts.User{} = user} = Accounts.create_user(%{name: "hoge"})
iex> user.name
"hoge"
参考にさせていただいた資料
その他
doctest(module, import: true)
でモジュール名なしで参照可能only: [hoge: 1]
やexcept: [hoge: 1]
なども可能- テスト側でfixtureなモジュールをimportしておけば、
iex>
で使用可能 - // 作成系は副作用がある(レコードが1増える等)のでdoctestで頑張るものではないかもしれない
- // 大量のデータ用意が必要なケースもdoctestが不必要に肥大化するので良し悪しありそう
- // 使用時に知っておいた方が良いケースは欲しいが、レアケースはコード上にはないほうが嬉しいか…?