Help us understand the problem. What is going on with this article?

PHPUnitのテストコードを書いてresponseに変数が入らない

More than 3 years have passed since last update.

はじめに

PHPUnitのテストコードを書いてresponseに変数が入らなかった時のメモです。
※PHPUnitを用いてITに近い形で行っています。

環境
FuelPHP 1.7
Smarty
※PresenterをカスタムしSmartyと連携させてます。

Smartyへの連携方法は以下の記事の通りです。(そのうちソース上げて綺麗にします・・・)
FuelPHP Smarty

概要

PhpUnitでテストコードを記述した際にViewに設定した値が取得できませんでした。ソースを追った結果renderが呼び出されていなかったのが落ちでした。

  1. ControllerでPresenterへ値を受け渡し(ValidateエラーをPresenterに渡す)
  2. PresenterのBeforeで値を設定(Validateで発生したエラー内容を受け取り表示する)

こんどrenderの呼ばれるタイミング調べよう。(てか昔調べたけど忘れてる・・・)

対応方法


値をチェックする前にrenderを動かせばいいので以下のロジックをチェックする前に呼べばOK。(なんかスマートなやり方じゃないけど・・・)

$response->body->__toString();

あとがき

今回のプロジェクトで性質上、デザインの調整が長引きあとから作成され追加されることからとりあえずViewを仮にはめViewに値が設定されているかどうかを確認するために行いました。
一応あとは正しくViewをはめてくれれば問題ないはず!と思ってます。

その他

参考
fuelPHPでPHPUnitを使ったユニット・コントローラーテストをするには

履歴

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away