如何使用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