Tôi đang kiểm tra đơn vị một số mã PHP với SimpleTest và tôi đã gặp sự cố. Trong các bài kiểm tra của tôi về một lớp cơ sở dữ liệu tôi muốn có thể thiết lập một kỳ vọng cho các hàm PHP mysql
. Trong các thử nghiệm của tôi về một lớp bao bọc cho hàm mail
tôi muốn giả lập hàm PHP mail
. Đây chỉ là một vài ví dụ.Mocking các hàm PHP trong các bài kiểm tra đơn vị
Vấn đề là: Tôi không (luôn luôn) muốn kiểm tra xem lớp thư của tôi có gửi e-mail không, tôi muốn kiểm tra cách nó gọi hàm mail
. Tôi muốn có thể kiểm soát những gì các chức năng này trở lại. Tôi muốn có thể kiểm tra lớp Cơ sở dữ liệu của mình mà không cần một cơ sở dữ liệu, đồ đạc và toàn bộ đó.
Tôi đã có một số kinh nghiệm về thử nghiệm mã Ruby và Test :: Unit và RSpec giúp bạn dễ dàng kiểm tra mã độc lập. Tôi là người mới để thử nghiệm PHP và cảm thấy như tôi đang thử nghiệm nhiều hơn tôi cần phải làm, để có được các bài kiểm tra của tôi để vượt qua.
Có cách nào trong SimpleTest hoặc PhpUnit hoặc một số khung kiểm tra khác làm cho điều này có thể hoặc dễ dàng hơn không?
Tôi hiểu. Tôi mong đợi (nhưng không hy vọng) một câu trả lời như vậy. Tôi không thực sự nhấn mạnh, vì tôi muốn đơn giản hóa và tăng tốc độ kiểm tra, không làm cho nó phức tạp hơn. Cám ơn phản hồi của bạn! – avdgaag
Hiện tại [Mockery] (http://docs.mockery.io/en/latest/cookbook/mocking_hard_dependencies.html) có vẻ là [cách đi] (http://stackoverflow.com/a/42158443/659788). – Franco
@Franco Không dành cho nội trang. – troelskn