Tôi đang tìm cách tốt nhất để đi về thử nghiệm các phương pháp sau đây tĩnh (đặc biệt là sử dụng một mô hình học thuyết):PHPUnit Mock Objects và phương pháp tĩnh
class Model_User extends Doctrine_Record
{
public static function create($userData)
{
$newUser = new self();
$newUser->fromArray($userData);
$newUser->save();
}
}
Lý tưởng nhất, tôi sẽ sử dụng một đối tượng giả để đảm bảo rằng "fromArray" (với dữ liệu người dùng được cung cấp) và "save" được gọi, nhưng điều đó là không thể vì phương thức này là tĩnh.
Mọi đề xuất?
Worth lưu ý " Cách tiếp cận này chỉ làm việc cho các stubbing và mocking của các cuộc gọi phương thức tĩnh, nơi người gọi và callee trong cùng một lớp. cái chết để kiểm tra] (http://misko.hevery.com/2008/12/15/static-methods-are-death-to-testability/). " –
Hàm 'staticExpects' đã bị xóa khỏi PHPUnit v4. Xem [chủ đề này trên github] (https://github.com/sebastianbergmann/phpunit-mock-objects/issues/137) để giải thích lý do. –
Như chúng ta đã biết rằng 'staticExpects' đã được xóa hoàn toàn khỏi phiên bản PHPUnit gần đây, thì cách thay thế nào để đạt được điều này mà không có' staticExpects'? –