PHPUnit を使ったテストを導入してみようと思うのですが独学なため実際の仕事での常識的にテストする対象の決め方をよく知りません。
あらゆるクラスのすべてのメソッドをテストできれば安全ですが実務上でそれが本当に現実的なのかを知りたいです。
例として記事を登録できるCRUDアプリケーションがあるとします。
モデルは次のような構造があるとします。
class Post
メソッド | 動作 |
---|---|
getContent() | 本文を取得 |
setContent() | 本文をセット |
コントローラーは次のメソッドを持ちます。
class PostController
メソッド | 動作 |
---|---|
index() | 一覧の表示 |
show() | 記事単体の表示 |
create() | 新規作成フォームの表示 |
edit() | 編集フォームの表示 |
store() | 新規保存処理 |
update() | 更新処理 |
destroy() | 削除処理 |
データベース接続やレコード登録削除などの動作はフレームワークに用意されているテスト済みのものを使います。(Laravelなどを想定しています)
コントローラーの index() であればビューのレスポンスがオブジェクトで返るので assertInstanceOf() で調べられそうにみえます。
Post のセッターメソッドは特に何も返さないのでセット後にプロパティが変化したことを確かめれば良さそうです。
具体的なテストコードの書き方は後で調べるとして、どのメソッドがどのように動作することを確かめたら「テストした」と言えるのでしょうか? あるいは複雑なメソッドなど特別なものだけをテストしたら十分なのでしょうか?
判断基準やどの程度細かく調べるのが常識かなどありましたら教えていただきたいと思います。よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー