7

私が正しければ、SimpleTest を使用すると、PHP エラーがスローされたことをアサートできます。ただし、ドキュメントに基づいて使用する方法がわかりません。コンストラクターに渡すオブジェクトがのインスタンスであることをアサートしたいMyOtherObject

class Object {
    public function __construct(MyOtherObject $object) {
        //do something with $object
    }
}

//...and in my test I have...
public function testConstruct_ExpectsAnInstanceOfMyOtherObject() {
    $notAnObject = 'foobar';
    $object = new Object($notAnObject);
    $this->expectError($object);
}

どこが間違っていますか?

4

4 に答える 4

13

型ヒントは PHP バージョン 5.2 以降の SimpleTest でキャッチできる E_RECOVERABLE_ERROR をスローします。以下は、「must be an instance of」というテキストを含むエラーをキャッチします。PatternExpectation のコンストラクターは、perl 正規表現を取ります。

public function testConstruct_ExpectsAnInstanceOfMyOtherObject() {
    $notAnObject = 'foobar';
    $this->expectError(new PatternExpectation("/must be an instance of/i"));
    $object = new Object($notAnObject);
}
于 2009-03-18T19:35:41.720 に答える
1

エラーが発生する前にエラーを予期する必要があります。SimpleTestはエラーを飲み込んで合格をカウントします。テストが終了し、エラーがない場合は失敗します。(PHP(致命的ではない)エラーと例外に対して、それぞれ同じように機能するexpectErrorとexpectExceptionがあります。)

于 2009-03-04T21:46:07.227 に答える