任何人都可以让我知道如何使用PHPUnit来测试REST风格的Web服务吗? PHPUnit似乎没有这种能力。使用PHPUnit测试REST风格的Web服务
回答
将请求摘入Request Object。通过这种方式,您可以测试代码而无需实际制作请求。那么测试很简单。
class RequestTest extends PHPUnit_Framework_TestCase
{
public function testRequest()
{
$request = new Request();
$request->setMethod('PUT');
$request->setPutData(…);
$this->assertSomething(
$this->testSubjectUsingRequest->process($request)
);
}
}
如果你要测试的响应从web服务,模拟/存根的web服务的API。
关于Stubbing and Mocking Web Services,虽然建议的内置web服务模拟工具适用于具有WSDL的Soap服务,但PHPUnit章节中还有一章,因此您必须手动配置您的Mocks(就像使用任何模拟资源一样)。
如果这不能解决您的问题,请更新您的问题,并提供有关RESTful服务的更多详细信息。
OnionTest http://www.oniontest.org/ 我有完全相同的问题。 Selenium,PHPUNIT非常棒,但它仍然是快速轻松测试rest/http服务的使命。我花了我大部分的时间,清理数据库,伪造http发布与浏览器/脚本,检查结果在DB这样的例子不胜枚举:)所以我写了OnionTest
这一切都归结到几个文本文件,有urls.txt被调用,并与你写的onions.txt(你的测试断言)进行比较。写一个洋葱:)
它给了我下面的
- EASY/FAST方式做GET /文本方面与参数的发布网址
- 检查响应(代码体)和文本应没有。
- 对响应以及计数xpath结果运行xpath(xml)表达式
- 详细的url调用! (听起来很简单),但DAMN很有用!在得到奇怪的结果后,你做的第一件事是什么。转储网址/通话。 OnionTest您只需设置“详细|| 1”的URL
O和它是免费的,它的测试版,这是一个周末的项目 - 依然共度,但非常实用!请参阅Getting Started快速Hello World指南。其他明智的看到“示例页面”快速“TableRowCount”和“TableRowRecord”OnionTest
无耻的自我推动! 写一个洋葱:)
非常酷的想法,但需要支持标头/ cookie。您还将如何测试经过身份验证的API。 – 2012-05-30 18:51:30
链接已死,你会把它放在github上吗? – 2012-09-11 19:03:51
- 1. 测试REST风格的JSON Grails的web服务
- 2. 测试REST风格的Web服务的工具
- 3. 测试Tornado Mongo REST风格的web服务
- 4. 如何测试REST风格的Web服务性能
- 5. 了解REST风格的Web服务压力测试结果
- 6. 春季REST风格的web服务测试
- 7. 单元测试使用Spring,RestTemplate和Java Config的I18N REST风格的Web服务
- 8. 使用PHPUnit测试REST API使用PHPUnit
- 9. 使用arquillian测试REST Web服务
- 10. 如何使用可变参数测试REST风格的服务?
- 11. REST风格的Web服务在Netbeans 6.9中使用Mysql测试错误
- 12. 使用XMPP服务器设计REST风格的Web服务
- 13. 测试REST Web服务
- 14. REST风格的Web服务中的@POST
- 15. Grails中的REST风格的Web服务
- 16. CakePHP中的REST风格的Web服务
- 17. 测试并试用REST Web服务
- 18. GWT + Spring MVC(REST风格的Web服务)
- 19. 实现REST风格的Web服务
- 20. TomEE与Jersey REST风格的Web服务
- 21. REST风格的Web服务发布API
- 22. REST风格的Web服务GET文件
- 23. 设置REST风格的Web服务
- 24. 什么是REST风格的Web服务
- 25. REST风格的Web服务和RESTful API
- 26. jquery REST风格的Web服务
- 27. 关于REST风格的Web服务
- 28. REST风格的web服务代理类
- 29. ASP.NET REST风格的Web服务
- 30. 使用ORMLite在REST风格的Web服务中进行事务
嗨戈登,谢谢你的回复。我们通过从命令行发送包含服务操作和服务类名称的URI来实际执行服务。所以我怀疑如果EXEC在PHPUnit中工作。如果有,它将解决我的问题(因为我可以使用EXEC运行我在命令行上运行的任何程序并测试服务) – sri 2011-04-17 22:38:50
@sri PHPUnit的Test Helpers扩展可以重命名函数。请参阅https://github.com/sebastianbergmann/php-test-helpers – Gordon 2011-04-18 06:08:40