I'm finally getting into PHP unit testing (yeah better late than never!)
I have a Utility
class that does a few things including authenticating a user's access against a webservice. The Utility::authenticate
method takes a Settings
object, which contains the username etc. that are checked by authenticate
.
So in my test, I mock a Settings
object like this:
$settings = $this->getMock('Settings', array('getSettings'));
$settings->method('getSettings')
->willReturn([
'USERNAME' => 'testuser',
'SERVER' => 'testserver'
]);
$mock = $settings->getSettings();
So far so good, but when I try to pass that mocked object to authenticate
it throws an error:
$this->assertEquals($testvalue, Utilities::authenticate($settings));
Argument 1 passed to Utilities::authenticate() must be an instance of Settings, instance of Mock_Settings_d0361624 given
How can I mock the Settings
object so it appears to be a "real" object to the Utilities
class?
Aucun commentaire:
Enregistrer un commentaire