SomeoneElse Posted August 11, 2015 Share Posted August 11, 2015 Hi, I'm using Mockery and I found out, that I very often need same piece of code, when I mock something. For example, on many places I have this code: <?php private function mockedState() { return Mockery::mock('State') ->shouldReceive('isOnline')->once()->andReturn(true)->mock(); } But, it is not only about this State class, but also some others classes are very often repeatable. So, should I create some class like this? class MockedState { public function onceCalledIsOnlineMethod() { return Mockery::mock('State') ->shouldReceive('isOnline')->once()->andReturn(true)->mock(); } public function neverCalledIsOnlineMethod() { return Mockery::mock('State') ->shouldReceive('isOnline')->never()->mock(); } } Should I take care of code duplication even though it is mock? I know, that even tests need to refactor so, that's the reason why I ask. Thank you. Quote Link to comment Share on other sites More sharing options...
scootstah Posted August 11, 2015 Share Posted August 11, 2015 Sure. Duplicate code is bad code, even in tests. Re-use whenever possible. You can make it a trait, or some abstract class that you extend, or instantiate it in your test, or whatever you want to do. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.