【php有必要做单元测试吗】教程文章相关的互联网学习教程文章

php-取消单元测试中的文件修改

我开始使用PHPUnit(具有DBUnit扩展名),并且遇到了问题. 我要测试的代码正在编辑位于服务器端的一些文件,我想知道是否可以像在数据库上进行回滚一样在测试结束时“回滚”此修改. 我想我可以在测试之前保存文件,启动测试,然后替换已编辑的文件,但是PHPUnit也许有更好的解决方案.解决方法:如果您正在测试文件修改,那么您实际上应该使用虚拟文件系统,例如vfsStream-这样,您可以在沙盒环境中模拟文件访问

php-ZF3单元测试身份验证onBootstrap【代码】

我在为我的IndexController类运行单元测试时遇到问题. 单元测试仅执行以下操作(启发自unit-test tutorial of zf3): IndexControllerTest.php:public function testIndexActionCanBeAccessed() {$this->dispatch('/', 'GET');$this->assertResponseStatusCode(200);$this->assertModuleName('main');$this->assertControllerName(IndexController::class); // as specified in router's controller name alias$this->assertContro...

php-如何从Laravel Artisan触发单元测试【代码】

我有一种情况,我在PHPUnit上进行了一些单元测试,我想从laravel的工匠控制台实用程序中触发它们.我已经用谷歌搜索,但没有找到任何参考,有可能吗?我不是问如何测试工匠命令.或如何动态调用另一个artisan命令,但如何触发artisan进行单元测试 我可以使用Artisan门面调用某些命令,例如Artisan::call('migrate'); //which calls migration像这样我可以调用单元测试吗?我正在使用PHPUnit解决方法:您可以使用symfony的process命令,该命令...

php-Laravel控制器单元测试模拟模型未调用【代码】

我正在尝试测试控制器动作.该操作应在模型上调用函数,并返回模型.在测试中,我模拟了模型,并将其绑定到IoC容器.我有通过其构造函数注入到控制器的依赖项.但是不知何故,没有找到并调用该模拟,而是调用了该模型的实时版本. (我知道,正在生成日志.) 首先,我的单元测试.创建模拟,告诉它期望一个函数,将其添加到IoC容器,调用路由.public function testHash(){$hash = Mockery::mock('HashLogin');$hash->shouldReceive('checkHash')->onc...

PHP-Symfony2单元测试表格提交【代码】

呈现时,我有一个看起来像这样的表格:<form name="service_user_registration" method="post" action="" novalidate="novalidate"><div><label for="service_user_registration_user_email" class="required">E-mail</label><input type="email" id="service_user_registration_user_email" name="service_user_registration[user][email]" required="required" size="30" class="sample_class" title="Sample title" placeholder=...

phpunit 单元测试【代码】【图】

用了这么久的php一直都是用xdebug在调试,今天想来试试php单元测试。 安装phpunit为 PHP 的二进制可执行文件建立一个目录,例如 D:\phpunit将 ;D:\phpunit 添加加到 PATH 环境变量中下载 http://phar.phpunit.cn/phpunit-6.2.phar 并将文件保存到 D:\phpunit\phpunit.phar打开命令行建立外包覆批处理脚本(最后得到 C:\bin\phpunit.cmd)C:\Users\Administrator>D: D:\>cd phpunit D:\phpUnit> echo @php "%~dp0phpunit.phar" %* ...

php-电子邮件验证.从网站访问时有效,但单元测试未通过【代码】

我今天遇到了一个相当奇怪的问题. 我使用以下规则建立了模型:public function rules() {return [[['name', 'email', 'website'], 'required'],[['name'], 'string', 'max' => 512],[['name'], 'unique'],[['email'], 'email'],[['website'], 'url'],]; }通过控制器访问时,此方法将相应地工作.但是我的单位测试无法通过验证电子邮件:$model->email = 'somethinghan.nl';$this->assertFalse($model->validate('email'),'Email is i...

php – 单元测试Laravel的FormRequest【代码】

我正在尝试单元测试各种自定义FormRequest输入.我找到了解决方案: >建议使用$this-> call(…)方法并使用期望值(link to answer)断言响应.这是过度的,因为它创建了对路由和控制器的直接依赖.>泰勒的测试,来自Laravel Framework found in测试/ Foundation / FoundationFormRequestTest.php.那里有很多嘲弄和开销. 我正在寻找一种解决方案,我可以根据规则对各个字段输入进行单元测试(独立于同一请求中的其他字段). SampleRequest示例...

php – 使用需要发送标头的项目进行单元测试【代码】

我目前正在使用PHPUnit来尝试和我正在编写的内容一起开发测试,但是,我正在编写会话管理器,并且遇到了这样的问题…… Session处理类的构造函数是private function __construct() {if (!headers_sent()){session_start();self::$session_id = session_id();} }但是,由于PHPUnit在开始测试之前发送文本,因此对此Object的任何测试都会返回失败的测试,因为HTTP“Headers”已经发送…解决方法:好吧,您的会话管理器基本上是按设计破解的.为...

php – 如何在Laravel 5.5中正确编写控制器方法的单元测试?【代码】

请检查我在控制器中使用的代码:class ObjectsPagesController extends Controller {public function destroy(Destroy $destroy, $id){$objectsPage = ObjectsPages::with( 'ObjectsPagesRelation')->where('group_id', $id)->first();if (isset($objectsPage)) {$objectsPage->delete();$objectsPage->ObjectsPagesRelation()->delete();return redirect()->route('objects.pages.index')->with('success', 'done'); }else{abort...

php – 我应该对每一段代码进行单元测试【代码】

我最近开始进行单元测试,我想知道,我应该编写100%代码覆盖率的单元测试吗? 当我最终编写比生产代码更多的单元测试代码时,这似乎是徒劳的. 我正在编写一个PHP Codeigniter项目,有时似乎我编写了这么多代码来测试一个小函数. 例如,这个单元测试public function testLogin(){//setup$this->CI->load->library("form_validation");$this->realFormValidation=new $this->CI->form_validation;$this->CI->form_validation=$this->getM...

PHPStorm,单元测试当前的类

我正在尝试从NetBeans迁移到PHPStorm,而我无法弄清楚的是:如何在不为每个类单独创建运行配置的情况下为当前类(可能是哪个)运行我的测试套件? 在NetBeans中,您可以使用Alt F6运行整个套件,或仅使用F6运行当前类.这使您可以只运行所需的测试而不是整个套件,这显然可以节省时间. 我无法弄清楚如何在PHPStorm中执行此操作而不为项目中的每个类创建新的运行配置,我显然不想这样做.解决方法:首先您必须告诉PHPStorm您存储测试的位置: ...

php – 文件导入导出模块的单元测试【代码】

我正在尝试为文件导入导出模块编写单元测试. 我的一个方法检查传递的文件名是否存在. 如何模拟和编写测试以检查文件是否存在?解决方法:单元测试应该证明一个代码单元在完全隔离中正确运行.如果您的测试依赖于文件系统正常运行以便通过,那么您的测试不是最理想的,可能会在任何给定的测试运行中对您撒谎. 与任何实验一样,如果您在游戏中有多个变量,则无法确定结果.对于与文件系统交互的PHP代码,最好使用自定义流包装器模拟文件系统(...

php – 如何管理项目中的单元测试文件?你在git中添加它们吗?

如何在项目中管理PHPUnit文件?你把它添加到你的git存储库还是忽略它们?你在PHPdocs代码中使用@assert标签吗?解决方法:建立 我目前没有使用php,但我正在使用git中的python unit testing和sphinx documentation.我们将测试添加到git,甚至对测试传递有一定的要求,推送到远程开发和主分支(比开发更难).这确保了一点代码质量(测试覆盖率也应该被评估,但那还没有实现:)). 我们在它们所属的目录中有test files in a separate directory...

这个Facebook错误的原因是什么:“PHP SDK单元测试发生错误”?【代码】

我正在使用Facebook登录我的网站,正在看这个例子:https://github.com/facebook/php-sdk/blob/master/examples/example.php 当我在示例网站上点击“使用Facebook登录”时,出现错误:An error occurred with PHP SDK Unit Tests. Please try again later.有什么想法会发生这种情况吗?解决方法:您的localhost有可能与外部服务器连接时出现问题.

单元测试 - 相关标签