web-dev-qa-db-ja.com

PHPUnit:assertInstanceOf()が機能していません

変数がUserタイプのオブジェクトであるかどうかを確認する必要があります。ユーザーは私のクラス$user私のオブジェクト

$this->assertInstanceOf($user,User);

これは機能していません、未定義の定数ユーザーを使用しています-「ユーザー」を想定しています

助けてくれてありがとう

55
user1173169

http://apigen.juzna.cz/doc/sebastianbergmann/phpunit/function-assertInstanceOf.html

この機能を間違って使用していると思います。試してください:

$this->assertInstanceOf('User', $user);
111
Mantas

可能な限り::classを使用することを常にお勧めします。この標準に慣れれば、FQCN(完全修飾クラス名)を使用したり、バックスラッシュをエスケープしたりする必要はありません。また、IDEは、ここのUserが単なる文字列ではなくクラスであることがわかっている場合、より優れた機能を提供します。

$this->assertInstanceOf(User::class, $user);
30
Rápli András

または、次のようなものを使用できます。

$this->assertInstanceOf(get_class($expectedObject), $user);

私は通常、セッターメソッドがselfへの参照を返しているかどうかをチェックするときにこれを使用します。

$testedObj = new ObjectToTest();
$this->assertInstanceOf(
    get_class($testedObj), 
    $testedObj->setSomething('someValue'),
    'Setter is not returning $this reference'
);
6
Rafal Kozlowski