2012-05-11 16 views
0

PHPUnitを使い始めました。データベースに接続して値を取得したいのですが、ファイル ' database.php 'PHPUnit - 不明な例外があります(未定義変数)

'database.php'は未定義の変数$ connectedにこの問題が常にありました。 私はエラー報告メッセージについて何かを読んでいます:error_reporting(E_ALL^E_NOTICE);

私は私のプロジェクトで私の他のファイルに早くそれを修正でしたが、私はPHPUnitのを使用する場合、私は、このエラーメッセージが表示されます:未定義の変数は:

私のテストケースファイルを接続し、それがコードです:

<?php include("database.php"); ?> 
<?php 
require_once 'person.php'; 

class PersonTest extends PHPUnit_Framework_TestCase { 

    public function lookupPerson(){ 

    $result = database::query("select * from Person where forename='Anna'"); 
    $rows = mysql_numrows($result); 
    for($i=0; $i < $rows; $i++){ 
    $arr[$i] = mysql_result($result, $i, 'forename'); 
    } 
    return $arr; 
    } 


    public function testLooking(){ 
    $arr = PersonTest::lookupPerson(); 
    foreach($arr as $a){ 
    $this->assertEquals('Anna', $a); 
    } 
    } 
} 


?> 

だから私は何ができますか?

よろしく ユーザーも

Alexein

+0

これはあなたの本当のテストですか?あなたは実際にPersonクラスの何かをテストするのではなく、テストクラスのメソッドだけをテストしますか? – Fenton

答えて

1

あなたのコードの上部には、単にエラー:)

error_reporting(0); 
ini_set("display_errors", 0); 
0
を修正するために最善勿論...これは、すべての通知を非表示にし、以下の追加します

この質問をご覧ください:test the return value of a method that triggers an error with PHPUnit

ここでは、PHPUnitがnotiを処理するのを防ぐ方法を示していますcesと警告を例外として扱います。

可能であれば、通知を修正してください。

0

私は私のプロジェクトでは、以前の私の他のファイルにそれを修正でしたが、私はPHPUnitのを使用する場合、私は、このエラーメッセージが表示されます:未定義の変数:接続

をスローされ、この通知であるdatabase.phpのどのラインから?おそらくあなたはif (!$connected)をどこかで行いますが、$connectedは書かれていません。したがってdatabase.php$connected = falseで開始すると、通知が失われます。