質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

PHPUnit

PHPUnitは、PHP向けのユニット・テスト向けフレームワークで、手動では手間のかかるテスト作業を自動化し、繰り返し実行することが可能です。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

2回答

2181閲覧

Unitテストについて

supermaruetsu

総合スコア148

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

PHPUnit

PHPUnitは、PHP向けのユニット・テスト向けフレームワークで、手動では手間のかかるテスト作業を自動化し、繰り返し実行することが可能です。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

2クリップ

投稿2018/10/15 03:55

会社でUnitテストをするよう言われましたが、どのようにすべきか分かりません。
FWはLaravelを使っています。

具体的に知りたいことは下記になります。
・どの単位でテストしたらいいか。(Controller?その先にあるServiceクラスにある各メソッド?)
・テストの為にデータを用意する必要があるか
・参考になる記事

ひとつのクラスやメソッドをテストしている記事はよく見ますが、今回やることとなった中規模アプリをどうテストするかは想像が難しく、どなたかご教示ください。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

自分が書いたコード以外の単体テストも行うのでしょうか?
それならば、無理とは言いませんが非常に面倒になります。
仕様を確認し、ソースコードを読み、理解できない箇所は書いた人に聞き、何が正しいかをはっきりさせてからじゃないと、テストケース書けません。
自分が書いたコードだけがテスト対象として話を進めます。

どの単位でテストしたらいいか。(Controller?その先にあるServiceクラスにある各メソッド?)

単体テストなので、できるだけ末端のクラス・メソッドだけにすべきです。
controllerは機能テストで行います。

テストの為にデータを用意する必要があるか

もちろんテスト用のデータが必要です。
実際に使われているデータを貰えるとベターです。
普通は自由に読み書きできるDBを別に用意します。

今回やることとなった中規模アプリをどうテストするかは想像が難しく

小規模だろうが大規模だろうが、単体テスト自体は変わりません。
機能(結合)テストはシステムの規模によって大きく難易度が変化しますが。

そもそも何の種類の単体テストを行うのかはっきりさせましょう。
とりあえず動くことを確認したいのか、境界値・異常値など網羅的に行うのか。
基本的には、自分が「これだけやれば安心だ」と思えるくらいテストケースを書けばいいわけです。
実際の現場ではそんなに時間を取れるわけではないので、動作確認くらいしかできませんが。

投稿2018/10/17 07:08

kgm

総合スコア275

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

supermaruetsu

2018/10/17 14:20

ご回答ありがとうございます。考え方や体系的な部分を知れて、わたしにとって非常に有難い回答でした。
guest

0

結論から言うと答えはありません。

http://akito0107.hatenablog.com/entry/2018/08/27/190333

そもそも「ユニットテスト」が何を指すのかさえ現場によりバラつきがあります。
その上で私の主観で回答すると、

どの単位でテストしたらいいか。(Controller?その先にあるServiceクラスにある各メソッド?)

コントローラーテストはユニットテストというには抱えるロジックが広範すぎると思います。
モデルやサービスのメソッドのテストがユニットテストに該当すると考えます。

テストの為にデータを用意する必要があるか

大半の場合必要有りなのではないかと思います。

投稿2018/10/17 01:29

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

supermaruetsu

2018/10/17 14:19

ご回答ありがとうございます。全くの無知でしたので、とてもありがたい回答でした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問