Câu hỏi phỏng vấn Laravel
Câu hỏi

Làm thế nào để bạn giả lập (mock) một phương thức static của facade?

Câu trả lời

Để giả lập một phương thức static của facade trong Laravel, bạn có thể sử dụng phương thức shouldReceive cung cấp bởi Laravel, điều này sẽ trả về một thể hiện của đối tượng giả lập (mock object) từ thư viện Mockery. Đây là một ví dụ cụ thể:

php Copy
Cache::shouldReceive('get')
     ->once()
     ->with('key')
     ->andReturn('value');

Trong ví dụ trên, chúng ta đang giả lập phương thức get của facade Cache. Phương thức shouldReceive được gọi trên facade Cache để chỉ định rằng khi phương thức get được gọi với tham số là 'key', nó sẽ trả về 'value'. Phương thức once chỉ định rằng phương thức get này sẽ được gọi đúng một lần trong quá trình kiểm thử[1][2][4][5][6][7].

Các facade trong Laravel không giống như các phương thức static thông thường vì chúng có thể được giả lập. Facade thực chất là một proxy static chuyển tiếp đến một thể hiện thực sự, và do đó, chúng có thể được kiểm thử hoặc giả lập. Laravel hỗ trợ việc này ngay lập tức với phương thức shouldReceive[2][4][5][6][7].

Ngoài ra, bạn cũng có thể sử dụng phương thức createMock để tạo một đối tượng giả lập từ thể hiện gốc, sau đó sử dụng shouldReceive ...

middle

middle

Gợi ý câu hỏi phỏng vấn

middle

Query scopes là gì?

middle

Làm thế nào để quay lại một migration cụ thể trong Laravel?

junior

Làm thế nào để bạn tạo ra các migrations trong Laravel?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào