Skip to content
Advertisement

Mock class with fluent interface in Phpunit

I am mocking this sample class with fluent methods that doesn’t have return type declaration:

JavaScript

Using PhpUnit:

JavaScript

By default, this will not work on fluent methods without return type declaration so I need to add the ff.:

JavaScript

This works but cumbersome to write if there are a lot fluent methods. My question is, is there a way to set this for the entire class instead of per method?

Advertisement

Answer

As far as I know there is no way to do this. This would afford a way to the mock to return itself for a certain set of methods and phpunit mocks do not have such functionality.

If you need this for a lot of methods you could create a manual mock (just a simple class that extends the class-to-mock and implement the magic method __call() (https://www.php.net/manual/en/language.oop5.overloading.php#object.call).

User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement