PHPUnitでUT書いたりなどした

こんばんは。

 

少し風邪気味でして、喉が痛いながらも開発をしこしこやっておりました。

メモ程度に書いていきます。

github.com

 

ずっとこのリポジトリで作業しているのですが、UTを書いていなかったので追加しました。

 

前職でゴリゴリ書いてはいたのですが、少し時間が空いてしまったため書き方を忘れ、もう一度調べなおすところからでしたw

 

とは言ってもfunctionは大して多くないのでアウトプットもアリンコですw

(時間は結構かかったけど)

 

f:id:kenshlro:20181024203808p:plain

 

なので今のところはカバレッジ100%です。

リポジトリパターンを使っているのですが、リポジトリに定義されているfunctionを利用しているcontroller等のテストはモック化しやすくてめちゃくちゃ楽です。

 

ただ、リポジトリ自体の単体テストって一般的にはどうやるんだろうと悩みまくっていました。

リポジトリパターンって、DBの操作とビジネスロジックを切り離すのが目的なので、

リポジトリ内のfunctionは必然的にDBの操作を行う記述が(正確にはSQLを発行する記述?)が書いてあります。

 

●●Repository.php

 public function create($input)
{
 return $this->model->create($input);
}

実態はインジェクションしたmodelが操作を行なっているのですが、そのmodelをモック化して、ただ値をreturnするだけにしたかったのですがうまく行かず..。

 

とは言えそのままテストで実行するとSQLを走らせることになるので困りました。

結局テスト用のDBを作成してしまう、というやり方になりましたが、これだとリポジトリ自体のテストというより、リポジトリ+modelの結合テストみたいになっちゃってます。

 

過剰なテストってことにして足りないよりはマシですが、もう少しここ調べてみようと思います。

 

続いて、jsのテストを書こうと思って調べまくってはいたものの..

純粋なjsのテストなら書けるが、vueになると構造がよくわからなくなって先に進めていない状態です。

 

webpackとかmochaとか色々ライブラリの情報が出てきて、一つ一つが何のために必要なのかを把握しないことには前に進めないことに1日かかって気付いたので(遅)、

まずはこちらの記事を参考にしながら勉強していこうと思っています。

 

qiita.com

 

webって奥が深くて難しいですね..。

 

それではまた。