问题标签 [phpspec]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
symfony - 使用 phpspec 测试 Symfony2 命令
我正在使用 phpspec 来测试我们的应用程序。现在我们需要开发一些命令,因此我也想指定这些命令。
我有点卡在这里,因为文档(http://symfony.com/doc/master/cookbook/console/console_command.html#testing-commands)只告诉我如何使用 phpunit 测试命令。
即使我会在规范中使用类似的方法(以某种方式创建内核,并实例化相关命令),我认为这不会遵循描述行为的想法。我只会指定输出是否正确,但如果命令调用正确的方法等等则不会。
有没有人使用 phpspec 成功描述过 Symfony2 命令?这样做的可行方法是什么?
谢谢
php - 如何使用 phpspec 获取代码自动完成
我刚刚开始学习 phpspec 以替换 PHPUnit。不幸的是,我对使用 PHPStorm 编辑器的代码完成功能非常着迷,这使得即使是 PHPUnit 的冗长模拟界面也可以非常快速地键入。
phpspec 没有这样的运气。给定这样的类:
首先,shouldHaveType
显示“未找到方法”突出显示,其次,如果我尝试在这???
一点上自动完成,我的选择仅限于ObjectBehaviour
. 我想看到像shouldHaveType
,shouldImplement
和更多的东西。
我在 Github 上找到了这个phpspec-stubs存储库,但它似乎只定义了一个方法,并且需要扩展一个包装类。
还有一个PHPStorm 插件,但我不清楚这是否应该提供自动完成功能,并且当前版本在输入任何 PHP 文件时立即在 PHPStorm 中给我一个 NullPointerException。
那么,你们所有的 phpspec 用户都输入了很多,还是有其他解决方案?
php - 如何将 php 规范与代码点火器一起使用?
我有一个代码点火器项目,我安装了 phpspec。我的问题是,当我对我的类运行测试时,它会抛出一个错误,即找不到该类的基类(由代码点火器框架自动加载),即“找不到类'CI_Controller'”。
我尝试手动包含基类的路径并删除namespace controllers;
似乎可以解决该问题的行。但是现在我的 phpspec 测试失败了class controllers\Calculator does not exist
。
这是我的设置方式:
我在 src > 控制器 > Calculator.php 中的类:
我在规范 > 控制器 > CalculatorSpec.php 中的测试:
谁能帮我让它工作?
php - let 中的 phpspec 标量值
我正在尝试将 let 函数与标量值一起使用。我的问题是价格是双倍的,我希望是整数 5。
错误:
有没有办法使用 let 函数注入 5?
php - PHPSpec/Prophecy 中通过引用传递的形式参数的存根
我在 PHP 中有一个方法,如下所示:
有没有办法$discountAmount
在 PHPSpec 中存根?假设我有一个正在测试的类,并且我已经$someService
通过构造函数注入。在我的规范中,我使用:
它为方法返回值创建存根。如何使用$discountAmount
形式参数执行此操作?
php - 未从不同的命名空间中找到 PHP 类
我目前正在使用 Phpspec 进行 Symfony2 项目,并且在扩展在不同命名空间中描述的 Spec 类时遇到问题。
例如,在我的项目中,我有以下类spec/Acme/Model/Foo/FooSpec.php
:
我还有另一门课要spec/Acme/Model/Bar/BarSpec.php
扩展FooSpec
:
当我尝试运行 phpspec 时,出现以下错误:
PHP Fatal error: Class 'spec\Acme\Model\Foo\FooSpec' not found in /home/user/Projects/Acme/spec/Acme/Model/Bar/BarSpec.php on line 9
我发现使它起作用的唯一方法是在中添加以下行spec/Acme/Model/Bar/BarSpec.php
:
我不知道为什么我必须包含这个特定文件才能使其运行,尤其是在PhpSpec\ObjectBehavior
正确找到其他类(如 )时。
你知道为什么会这样吗?
编辑:
正如@Phil 和@Sheikh Heera 在评论中所建议的那样,我尝试设置一个autoload
来注册我的规范命名空间,但它也不起作用。这是我到目前为止所尝试的:
我还尝试修改文件vendor/composer/autoload_namespaces.php
以添加以下内容:
但仍然是同样的错误。我也尝试过'spec' => array(getcwd())
或$loader->add('spec', getcwd());
只是想看看会发生什么,这次我Cannot redeclare class
参加了另一个规范课程。
我的 php 版本是PHP 5.4.9-4ubuntu2.4 (cli)
.
预先感谢您的帮助。
php - 使用 phpspec 使用 Guzzle API 客户端测试 Symfony 2 捆绑包
早上好!
我最近创建了一个与第三方 API 集成的 Symfony 2 包。
我使用 Guzzle 和很棒的服务描述来创建客户端并调用 API。
现在我想提高质量并添加一些测试。经过一番阅读后,我开始使用 phpspec 对客户端进行功能测试,并使用 Behat 进行行为测试。
我读过你可以模拟 API 响应,但我不知道如何。尽管 phpspec 内部有一个模拟库(预言),但我找不到任何示例如何模拟预言中的响应。
我创建了我的规范
它在Bundle/spec/
文件夹中创建了我的规范类。
这是我希望通过此测试模拟的响应:
HTTP/1.1 200 OK
Cache-Control: no-cache,no-store,must-revalidate
Connection: Keep-Alive
Content-Type: application/vnd.siren+json; charset=UTF-8
日期:2014 年 2 月 12 日 07:43:00 GMT
过期时间:星期四,1970 年 1 月 1 日 00:00:00 GMT,0
Keep-Alive:timeout=15,max=100
Pragma:no-cache
服务器:Jetty (8.yz-SNAPSHOT)
传输编码:分块
通过:1.1 test.local{
“类”:[
“Make”
],
“属性”:{
“makeCode”:“1”,
“名称”:“阿尔法罗密欧”
},
“链接”:[
{
“rel”:[
“self”
],
“href”:“ https://test.local/v1/api/vehiclereferencedata/make/1 ”
},
{“rel”:[
“模型”
],
“href”:“ https://test.本地/制造/1/模型“
}
]
}
我希望有人能让我走上正轨:)
rspec - phpspec - 断言在方法调用期间对象已更改
如果我有以下方法:
这是一个非常愚蠢的例子,但它是用来说明我的问题的。
传递的对象在方法调用过程中可能会发生变化,但方法不会返回对象。
使用 phpspec 如何断言对象已被修改?
php - phpspec,我想在调度程序上调用 shouldBeCalled
我搜索了使用 phpspec 对调度程序 symfony2 进行功能测试的可能性
我想这样做:
我的代码在这里:
phpspec 的答案是:
laravel - vagrant vm中的phpspec - 权限错误
我正在建立一个新的 Laravel 项目并希望在项目中使用 PHPSpec。
我可以从本地 OSX 机器运行 PHPSPec,但我希望能够从 VM 中运行它。从 Vagrant VM(当前是 Ubuntu 12)中运行时,我收到“找不到命令”或“权限被拒绝”错误。这似乎是因为文件在 VM 中不可执行,而 chmod +x 没有任何区别。
我的 Vagrantfile 中有以下内容:
这部分是为了让我可以在虚拟机全部设置完成后将其提供给同事,而无需他们在本地进行设置。从 VM 运行所有与开发相关的任务也感觉更好。对此可能意见不一。。
非常感谢任何帮助。先感谢您!