Skip to content

Mocking multiple types reports errors with phpstan 0.12 #58

Open
@Khartir

Description

@Khartir

Calling createMock with multiple Types causes phpstan to report errors:

A class like

<?php declare(strict_types=1);

namespace App;

use PHPUnit\Framework\TestCase;

class Test extends TestCase
{

    public function testDummy(): void {
        $this->createMock([\DateTimeInterface::class, \ArrayAccess::class]);
    }
}

throws the following errors:

 ------ ------------------------------------------------------------------------------------------------------------------------------------------------- 
  Line   Test.php                                                                                                                                         
 ------ ------------------------------------------------------------------------------------------------------------------------------------------------- 
  11     Parameter #1 $originalClassName of method PHPUnit\Framework\TestCase::createMock() expects class-string<mixed>, array<int, class-string> given.  
  11     Unable to resolve the template type T in call to method PHPUnit\Framework\TestCase::createMock()                                         
 ------ ------------------------------------------------------------------------------------------------------------------------------------------------- 

The error also occurs, if there is only one class given, but not as a string, but as an array:
$this->createMock([\DateTimeInterface::class]); produces the same error.

This is working fine in phpstan 0.11

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions