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. Link to comment https://forums.phpfreaks.com/topic/297734-avoid-duplicated-mocks/ 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. Link to comment https://forums.phpfreaks.com/topic/297734-avoid-duplicated-mocks/#findComment-1518540 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.