Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我应该为RESTAPI包装器编写测试吗?_Php_Testing_Bdd_Behat - Fatal编程技术网

Php 我应该为RESTAPI包装器编写测试吗?

Php 我应该为RESTAPI包装器编写测试吗?,php,testing,bdd,behat,Php,Testing,Bdd,Behat,我对整个测试场景都很陌生。我一直在阅读关于BDD测试的文章(在我的例子中,我正在编写PHP应用程序,所以我正在研究作为BDD框架的Behat),我发现它非常有趣。 我在网上搜索了一些关于api包装器bdd测试的信息,但我发现了很多不同的结果 我将为一个带有RESTAPI的服务编写一个应用程序。但我还需要编写PHP api包装器。所以我的问题是,我应该为包装器编写测试吗?我应该编写什么样的测试?BDD框架可以工作,但考虑到selenium、使用api的应用程序和api内部发生的事情之间可能发生的情

我对整个测试场景都很陌生。我一直在阅读关于BDD测试的文章(在我的例子中,我正在编写PHP应用程序,所以我正在研究作为BDD框架的Behat),我发现它非常有趣。 我在网上搜索了一些关于api包装器bdd测试的信息,但我发现了很多不同的结果


我将为一个带有RESTAPI的服务编写一个应用程序。但我还需要编写PHP api包装器。所以我的问题是,我应该为包装器编写测试吗?我应该编写什么样的测试?

BDD框架可以工作,但考虑到selenium、使用api的应用程序和api内部发生的事情之间可能发生的情况,它可能会被证明是脆弱的

有一种很棒的php方法可以做到这一点

如果您喜欢其他语言,那么可以使用Mule ESB对web服务api进行测试。我发现它非常擅长针对服务或任何http运行自定义内容。如果您喜欢groovy或JavaMule,ESB非常适合直接访问端点,以分离响应并发出有效和无效的请求。它有一个尖锐的点击式界面,可以提供多种可能性。如果api返回xml,那么有很多方法可以直接解析它。它也可以很好地与JSON配合使用。即使您为数据响应创建了自己的格式,您也可以相当轻松地深入研究它。Guzzle提供了很多相同的功能,但是是以一种友好的php curl方式提供的,但是没有任何尖锐的clicky内容

如果您用于RESTAPI的语言和框架有一个像样的单元测试包,那么也要这样做,特别是在有意义的地方。我知道您正在使用php,我讨厌php中的单元测试,但有时候,当您想要保护某些方法时,您无法用任何其他方法来验证某些方法是否正确

我也见过使用Jasmine或qUnit等javascript测试框架创建成功的api测试套件


<> P>这取决于你对API的理解和本质,以及你认为API的哪些特性是很重要的。

你应该为所有代码编写测试。第三方代码应该由其自己的维护人员进行测试,如果不是,您应该小心在项目中使用它。第三方代码?我不确定我在听。我正在为api包装器和使用包装器的应用程序编写代码。我唯一没有写的显然是REST服务。我的第二个问题是,我应该为api包装器编写什么样的测试?如果您发布一些api包装器类的代码(或者至少是一些伪代码),我实际上可以编写一个完整的答案,讨论如何对其进行测试。我刚刚开始编写,所以它是相当不完整的。但这里有到存储库github.com/moleclezz/servio-phpMaybe的链接“Spec BDD with phpspec”很有意义:它允许您用自然语言描述API的行为。您在这里谈论了很多API。但我没有制作API。我只是将API用于我的应用程序,我已经为该API编写了一个包装器,以便在我的应用程序中使用。