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

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

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

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

PHPUnit

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

テスト駆動開発

テスト駆動開発は、 プログラム開発手法の一種で、 プログラムに必要な各機能をテストとして書き、 そのテストが動作する必要最低限な実装を行い コードを洗練させる、といったサイクルを繰り返す手法の事です。

Q&A

0回答

2702閲覧

テストコードの書き方について教えてください

yoppy0066

総合スコア293

PHP

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

PHPUnit

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

テスト駆動開発

テスト駆動開発は、 プログラム開発手法の一種で、 プログラムに必要な各機能をテストとして書き、 そのテストが動作する必要最低限な実装を行い コードを洗練させる、といったサイクルを繰り返す手法の事です。

0グッド

1クリップ

投稿2016/12/11 05:42

編集2016/12/11 06:31

テストコードの書き方について教えてください。

PHPなどでWebアプリの開発を行っていますが、テストコードを書いたことがありません。実際に書こうと思っても何から始めればよいのかがよくわかりません。。。

例えば、以下のような商品を購入する機能を開発する場合に、実際にどのようなテストコードを書けばよいのでしょうか?もっとシンプルな例はたくさんあるとは思うのですが、実装レベルになるとどうすればよいかわからず質問させていただきました。

仕様

1.購入画面
商品の詳細情報が画面に表示されていて購入ボタンと配送先の住所を入力するテキストボックスを表示する

2.購入内容確認画面
購入する商品と1.で入力した配送先の住所を表示する

3.購入完了画面
DBに受注情報を登録して購入完了画面を表示する

プログラムは以下のようなものを想定しています
├── controllers
│   ├── input.php
│   ├── confirm.php
│   └── complete.php
├── views
│   ├── input.html
│   ├── confirm.html
│   └── complete.html
└── models
├── product.php
└── order.php

  1. 購入画面

controllers/input.php

$id = $_GET["id"]; if (!$id) { // 404エラー } $products = Model_Products::get($id); if (empty($products)) { // 404エラー } // テンプレート表示 $viewData = array("products", $products); viewTemplate("input.html", $viewData);

views/input.html

<!-- 商品情報などを表示 --> <form method="post" action="confirm.php"> <input type="hidden" name="id" value="<?= $products["id"]; ?>" /> 配送先<input type="text" name="address" /> <input type="submit" value="確認" /> </form>

2.購入内容確認画面
controllers/confirm.php

$id = $_POST["id"]; $address = $_POST["address"]; if (!$id) { // 404エラー } if (!$address) { // バリデーションエラー } $products = Model_Products::get($id); if (empty($products)) { // 404エラー } // テンプレート表示 $viewData = array("products", $products); viewTemplate("confirm.html", $viewData);

views/confirm.html

<!-- 商品情報や配送先などを表示 --> <form method="post" action="complete.php"> <input type="hidden" name="id" value="<?= $products["id"]; ?>" /> <input type="hidden" name="address" value="<?= $_POST["address"]; ?>" /> <input type="submit" value="購入" /> </form>
  1. 購入完了画面

controllers/complete.php

$id = $_POST["id"]; $address = $_POST["address"]; if (!$id || !$adress) { // 404エラー } $products = Model_Products::get($id); if (empty($products)) { // 404エラー } // 受注情報登録処理 Model_Orders::register($products, $address) ・・・

Modelsの実装
models/product.php

Model_Product { public static function get($id) { // productsテーブルへSelect文を実行して結果を返す } }

models/order.php

Model_Order { public static function register($products, $address) { // ordersテーブルへinsert文を実行 } }

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問