2010-04-05 42 views
5

Hướng dẫn Zend liệt kê nhiều xác nhận để kiểm tra đầu ra được tạo ra bởi một yêu cầu.Unit Test json output trong Zend Framework

http://framework.zend.com/manual/en/zend.test.phpunit.html

Nhưng tất cả dường như cho rằng đầu ra là html. Tôi cần phải kiểm tra đầu ra json để thay thế.

Có bất kỳ xác nhận nào hữu ích để kiểm tra json hay ít nhất là cách chung để xác nhận về đầu ra? Bất cứ điều gì không phụ thuộc vào yêu cầu xuất html?

Trả lời

13

Không có phương pháp xác nhận cụ thể nào cho JSON được triển khai trong Zend_Test_PHPUnit. Tuy nhiên, thử nghiệm đầu tiên bạn có thể muốn làm là kiểm tra xem JSON có hợp lệ không, do đó chuyển đổi nó thành kiểu ban đầu của nó (mảng/đối tượng). Từ đó, bạn đang ở vị trí sử dụng assertions chung của PHPUnit để xác thực nội dung của nó.

CẬP NHẬT: Để có được cơ thể phản ứng thô bạn có thể làm như sau (khi mở rộng Zend_Test_PHPUnit_ControllerTestCase):

$this->getResponse()->getBody(); 
+0

Có một đối tượng phản ứng cung cấp cách để kiểm tra xem đó là một chuyển hướng, hoặc một ngoại lệ và vì vậy trên, và cung cấp để phân tích nó như html, nhưng tôi không thể tìm thấy bất kỳ cách nào để có được phản ứng thô. – lyle

+0

Vui lòng xem cập nhật trong câu trả lời. – nuqqsa

+0

Vâng, đúng vậy, cảm ơn bạn! :) Tôi luôn luôn giả định 'getBody' sẽ tham chiếu đến thẻ của đầu ra html, có vẻ như đã bị mất trong bản dịch. – lyle