header image

Ryuzeeについて

mixi Twitter Twitter

携帯対応

QRコード

RING

人気ブログランキング

新着記事

4月 14th, 2009 日記 none Comments

CakePHPとSimpleTestの連携で以下のようなソースを書いた。

$data = array('username' => 'hogehoge', 'password' => '1234567');
$this->User->create($data);
$result = $this->User->validates();
$this->assertFalse($result, 'パスワードが7文字の時はエラーになること');

んで、失敗するテストとして実行したところ、テスト結果のメッセージ(パスワードが7文字・・・)が文字化けするので調べてみたところ、cake\tests\libにあるcake_reporter.phpに問題があることが分かったので今後のためにメモ。

問題となっているのは42行目

function CakeHtmlReporter($character_set = 'ISO-8859-1') {
    if (isset($_GET['show_passes']) && $_GET['show_passes']) {
        $this->_show_passes = true;
    }
    $this->SimpleReporter();
    $this->_character_set = $character_set;
}

ここで、Html形式でのテスト結果の出力の際に、標準では出力の文字コードがISO-8859-1になっている。
で、呼び出し元のtest_manager.phpの596行目からのCakeTestsGetReporter()関数の中では、呼び出しの際に引数に文字コードを渡していないため、日本語文字列もISO-8859-1で処理しようとしているため、文字化けしている。

ということで解決策はcake_reporter.phpの42行目

function CakeHtmlReporter($character_set = 'ISO-8859-1') {

function CakeHtmlReporter($character_set = 'UTF-8') {

に修正すると良い。

“[CakePHP]SimpleTest連携時のメッセージ文字化けを修正する方法”へのコメントはありません。

コメントはありません。是非コメントしてください。

コメントする

XHTML: 以下のタグが利用可能です: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackback

 


ads

読まなきゃモグリ