Bạn đã thử mở rộng CWebTestCase chưa? Nói chung khi viết các bài kiểm tra đơn vị, bạn có đồ đạc và đồ vật để cung cấp dữ liệu cần thiết - nhưng với các bài kiểm tra về lượt xem và các bài kiểm tra 'chức năng', đối với ứng dụng web, thường dễ dàng bắt chước trình duyệt và thực hiện hành động trên ứng dụng web nếu người dùng thực sự đang sử dụng nó. Hiện tại, việc bắt chước này dễ dàng thực hiện nhất với Selenium (theo ý kiến của tôi).
Hướng dẫn Yii trên Functional Testing là một nơi tốt để bắt đầu cũng như Selenium Documentation. Ngoài ra còn có this book mà đi qua sử dụng selen (Tôi không chắc chắn nếu phiên bản mới nhất nào, nhưng tôi biết phát hành trước đó với Publication Date: ngày 11 tháng 8 năm 2010), và Larry Ullman của Yii Book sẽ có các chương về thử nghiệm và sử dụng Selen trong các bài kiểm tra chức năng khi anh ấy hoàn thành chương đó.
Hy vọng điều này sẽ hữu ích!
Update để giải thích thêm CWebTestCase
CWebTestCase kéo dài PHPUnit_Extensions_SeleniumTestCase trực tiếp thực hiện một nền tảng thử nghiệm chức năng mà bạn có thể sử dụng trong vòng phpunit để kiểm tra xem, tạo kiểm tra phụ tùng bên trong quan điểm, khẳng định văn bản tồn tại, ' bấm vào 'trên liên kết, vv Những thử nghiệm này vẫn chạy từ dòng lệnh mặc dù họ yêu cầu máy chủ Selenium-RC được bắt đầu khi thử nghiệm đang chạy và họ yêu cầu một trình duyệt hợp lệ được cấu hình. Một trình duyệt hợp lệ có thể được cấu hình với mã ít nhất là sau đây được đặt bên trong setUp()
chức năng:
$this->setBrowser('*firefox /usr/lib/firefox/firefox-bin');
Nói rằng mã số bảo hiểm không thể được cung cấp bởi CWebTestCase là không đúng sự thật, như CWebTestCase kéo dài PHPUnit_Extensions_SeleniumTestCase, cung cấp sau khi trích dẫn từ the documentation:
PHPUnit_Extensions_SeleniumTestCase có thể thu thập mã số bảo hiểm thông tin cho các bài kiểm tra chạy qua Selenium:
chép PHPUnit/Extensions/SeleniumTestCase/phpunit_coverage.php
vào thư mục gốc tài liệu của máy chủ web của bạn. Trong file cấu hình php.ini của máy chủ web của bạn, cấu hình
PHPUnit/Extensions/SeleniumTestCase/prepend.php
và PHPUnit/Extensions/SeleniumTestCase/append.php
như auto_prepend_file
và auto_append_file
, tương ứng.Trong thử nghiệm của bạn lớp trường hợp kéo dài PHPUnit_Extensions_SeleniumTestCase
, sử dụng
protected $coverageScriptUrl = 'http://host/phpunit_coverage.php';
để cấu hình URL cho phpunit_coverage.php
kịch bản.
Câu hỏi hay! Tôi muốn nhấn mạnh nhiều hơn vào đơn vị và thử nghiệm chức năng trong các hướng dẫn khuôn khổ và sách chứ không phải là chức năng chuẩn hóa bản mẫu mà bạn có thể học trong 10 phút. – AndrewPK