如果我是正确的,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);
}

我要去哪里错了?

最佳答案

从PHP版本5.2开始,类型提示引发E_RECOVERABLE_ERROR,SimpleTest可以捕获该错误。以下内容将捕获包含文本“必须是”的任何错误。 PatternExpectation的构造函数采用perl正则表达式。

public function testConstruct_ExpectsAnInstanceOfMyOtherObject() {
    $notAnObject = 'foobar';
    $this->expectError(new PatternExpectation("/must be an instance of/i"));
    $object = new Object($notAnObject);
}

10-08 03:02