есть метод deleteAll, который вызывает delete метод, который просто лезет в базу и удаляет данные. delete() в случае успешного удаления должен возвращать 0. Так как я не хочу, чтобы при запуске юнит тестов данные действительно удалялись, я сделал такой подход:
public function testDeleteAll(array $list, $expected)
{
$modelMock = $this->getMockBuilder(Model::class)->setMethods(['delete'])->getMockForAbstractClass();
$modelMock->method('delete')->willReturn(0);
$this->assertEquals($expected, $modelMock->deleteAll($list));
}
Правильно ли я сделал? Тесты проходят, но я не уверен, что оно работает правильно. Или нужно было поступить как то иначе? Просто, если я указываю в setMethods еще deleteAll то тесты фейлятся. Надо ли было еще его указывать?