PHPUnit迫使我在断言实例之前要求类

前端之家收集整理的这篇文章主要介绍了PHPUnit迫使我在断言实例之前要求类前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在测试一个返回另一个类的实例的对象.在内部,该类调用require_once.但是,当我尝试检查返回的对象是否属于该类型时,我收到以下消息:
InvalidArgumentException: Argument #1 of PHPUnit_Framework_Assert::assertInstanceOf() must be a class or interface name

调用assertInstanceOf之前,我在测试中再次调用require_once时,此消息消失了.这似乎不对.似乎PHPUnit应该足够聪明,知道该类已经加载,所以我不应该再次加载它.我在想这个错吗?我的PHPUnit配置错了吗?有没有办法避免在我的测试中再次要求这门课程?

您的单位可能类似于:
$this->assertInstanceOf('MyOtherClass',$this->object->someFunctionReturnsOtherClass());

这是好的,除了这里,注意:PHPunit方法被称为BEFORE你的对象.既然你说过,你的对象已经在内部执行了require_once意味着在你的方法调用之前,’MyOtherClass’仍然是一个未定义的类.这正是发生的事情. PHPunit函数准备使用’MyOtherClass’进行检查,发现它未定义!

对象自己的require_once甚至从未调用过.这就是为什么你以前必须自己打电话的原因.如果您使用类似于true == $returnObject instanceOf MyOtherClass的语句,它会返回相同的错误,因为在解析PHP时无法找到类定义.

猜你在找的PHP相关文章