Method 'setMethods' is deprecated when try to write a PHP Unit Test

Viewed 3940

I want to create a mock to replace a resource:

$gateway = $this->getMockBuilder('PaymentGateway')
            ->setMethods(['transfer'])
            ->getMock();

I got this warning:

Method 'setMethods' is deprecated

How can I resolve this deprecation?

1 Answers

From now on we are supposed to use either onlyMethods() (which would be the closest equivalent to setMethods() and addMethods():

$gateway = $this->getMockBuilder('PaymentGateway')
            ->onlyMethods(['transfer'])
            ->getMock();

This is explained in the PR (linked from the method PHP doc directly, as seen here).

Related