PHPUnit: assertInstanceOf() not working

后端 未结 3 1102
感动是毒
感动是毒 2021-02-02 05:13

I need to check if a variable is an object of the User type. User is my class $user my object

$this->assertInstanceOf($user,User);
相关标签:
3条回答
  • 2021-02-02 05:42

    It's always a good idea to use ::class wherever you can. If you get used to this standard, you don't have to use FQCNs (fully qualified classnames), or escape backslashes. Also, IDEs provide better functionality if they know that User here is not just a string, but rather a class.

    $this->assertInstanceOf(User::class, $user);
    
    0 讨论(0)
  • 2021-02-02 05:43

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

    I think you are using this function wrong. Try:

    $this->assertInstanceOf('User', $user);
    
    0 讨论(0)
  • 2021-02-02 05:45

    Or You can use something like:

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

    I usually use this when I'm checking i.e. if setter method is returning reference to self.

    $testedObj = new ObjectToTest();
    $this->assertInstanceOf(
        get_class($testedObj), 
        $testedObj->setSomething('someValue'),
        'Setter is not returning $this reference'
    );
    
    0 讨论(0)
提交回复
热议问题