如何使用phpunit測試用例測試ajax調用?如何使用phpunit測試用例測試ajax調用?
3
A
回答
4
根據您的ajax響應如何生成,這可能很容易或更困難。如果使用控制器生成響應,則可以在單元測試中簡單調用相應的函數,並檢查返回的HTML/XML。例如,如果響應由控制器對象像這樣的調用函數生成:
$htmlResponse = $controller->buildPage($_REQUEST);
然後就可以進行單元測試這樣的迴應:
$expected = "<html>whatever html you expect</html>";
$test_request = array(...); // parameters to test
$actual = $controller->buildPage($test_request);
$this->assertEquals($expected, $actual);
如果不與你產生響應這樣的函數調用 - 如果你的AJAX請求是與它的一些動態內容的實際頁面,好像你可以做這樣的事情:
$_POST['parameter1'] = "test value"; // stuff whichever request object you're using
// with the values you need
ob_start();
include('ajax_page.php');
$actual = ob_get_clean();
$expected = "<html>expected html as above</html>";
$this->assertEquals($expected, $actual);
的PHPUnit還提供assertTag用於測試生成的HTML和XML的斷言包含您期望的標記 - 它可能有點挑剔,但它比響應和比較字符串更強大。最終,所有你想知道的是,給定一個輸入(請求參數),你得到你期望的輸出(返回的HTML或XML)。這是一個AJAX調用的事實並沒有從根本上改變方程式。如果你想測試AJAX請求是否正確MADE,你會想在JS測試的客戶端做到這一點。
+0
這很好用!但是,如果在單個單元測試會話中運行多個測試,即使使用setUp/tearDown,也可能必須將任何'function'和'class'定義提取到一個單獨的PHP文件中,然後使用'require_once ()'。同時關注如何使用'globals';如果你正在使用一個將'include()'放入一個函數的單元測試框架。在這種情況下使用'globals'可能會非常棘手,所以請避免使用它們。 – 2012-01-30 23:41:20
相關問題
- 1. PHPUnit - 如何測試回調被調用?
- 2. PHPUnit測試實例
- 3. 如何使用PHPUnit測試Symfony2模型
- 4. 如何在laravel中使用phpunit測試特定測試類
- 5. 用jasmine測試ajax調用
- 6. 在SOAP UI中調用測試用例中的測試用例
- 7. 將PHPT測試用例與PHPUnit集成
- 8. QUnit測試測試用例
- 9. 如何使用ExecutorService單元測試排序測試用例
- 10. PHPUnit和域例外測試
- 11. 用PHPUnit測試mt_rand函數
- 12. 用PHPUnit測試多個類
- 13. 如何用jsunit測試ajax?
- 14. 如何用phpunit測試內部數組
- 15. 使用delve調試測試
- 16. 如何在試用測試用例中使用assertRaises使用inlineCallbacks
- 17. 如何使用新測試包調試瀏覽器測試
- 18. 使用PhpStorm在Homestead環境中調試PHPUnit測試
- 19. 在Android Studio中調試測試用例
- 20. 如何使用Rapidminer測試測試集?
- 21. 如何記錄PHPUnit測試
- 22. 如何使用jasmine測試jquery調用?
- 23. 使用PHPUnit單元測試Doctrine對象
- 24. 使用phpunit動態按鈕href測試
- 25. 使用PHPUnit和PDO測試覆蓋率
- 26. 使用PHPUnit創建動態測試
- 27. PHPUnit:使用die響應測試RestFul API
- 28. 使用PHPUnit的功能測試
- 29. 使用phpunit測試PHP解析錯誤
- 30. Laravel - 使用Doctrine時的phpUnit測試
我不確定你可以。 Ajax從客戶端完成,PHP在服務器上。 – 2011-03-02 06:06:19