- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不知道这个方法是如何工作的。这是我尝试使用它的示例:
namespace spec;
use PhpSpec\ObjectBehavior;
class MyObjectSpec extends ObjectBehavior
{
/**
* @param SomeEvent $event
* @param SomeSubscriber $subscriber
*/
function it_formats_the_string_as_a_header_if_underline_with_single_dashes(
$event,
$subscriber
)
{
$subscriber->onChange($event)->shouldBeCalled(); //RIGHT HERE
// when
$this->addSubscriber($subscriber);
$this->doWhatever($event);
}
}
class SomeEvent {}
class SomeSubscriber
{
function onChange($event){}
function usesOnChange(){
$someEvent = new SomeEvent();
$this->onChange($someEvent);
}
}
命名空间正确,文件分别位于 ObjectSpec.php 、 SomeEvent.php(在 src 文件夹中)和 SomeSubscriber.php(在 src 文件夹中)。这给了我一个错误 No Call has been matched but at least one was expected 为什么这不起作用?谢谢。
最佳答案
您能否提供MyObject
的实现?如果您想获得正确的答案,这将很有帮助。
当您尝试创建对象方法 ->shouldBeCalled()
的模拟时,基本上意味着该方法 onChange()
带有参数 $event
应该在对象 $subscriber
上调用。
您收到的消息基本上意味着该方法未被调用,现在是您应该实现它的步骤。
我已经提供了您的类的基本实现,它在 PHPSpec 运行中给出了成功的结果。
<?php
class MyObject
{
private $subscribers = array();
public function addSubscriber($subscriber)
{
$this->subscribers[] = $subscriber;
}
public function doWhatever($event)
{
foreach($this->subscribers as $subscriber) {
$subscriber->onChange($event);
}
}
}
关于PHPSpec shouldBeCalled() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17199316/
我已经开始了一个 composer 项目并包含了 phpspec-st, 当我运行命令时: /var/www/yii-video-site/vendor$ bin/phpspec desc video
我正在使用 PHPSpec,但每当测试失败时,我都会得到以下信息: 它确实说明了我的测试失败的地方,但它没有输出确切返回的内容,因此没有帮助。 我试图通过创建一个 phpspec.yml 文件并将其放
我决定使用 BDD 工作流编写简单的 MVC。我想实现设置类的某些属性的方法。这件事与文件路径有关。在这种方法中,我想检查路径是否正确以及该文件是否存在。最终产品应如下所示: someProperty
我对 phpspec 还很陌生,但通常当我遇到问题时我会找到解决方案,但这个很难。 我尝试了很多不同的方法,但我还没有找到解决方案。我正在使用 Symfony2。 我有一个要测试的类: class M
我想获取对象的实际 返回值,而不是可链接的对象。 class Foo { public $attribute = 'data'; } class FooSpec extends ObjectBe
我有一个如下所示的 phpspec 类,我只想从中运行一个规范。我只想运行“it_should_do_something_easy”。这可能吗? 这就是我运行这个规范文件的方式: $> phpspec
我在项目中将 Doctrine 2.5 更新为 2.6,但 phpspec 已损坏。 函数 getEntityChangeSet() 现在通过引用返回。 phpspec好像不支持。 $unitOfWo
在 phpspec 中,我可以模拟方法的返回值吗? 例如: class MyClass() { public function getStaffMemberNames() {
我有一个简单的测试: function it_should_return_error_response_exception(Client $httpClient,CommandInterface $c
有人知道从 PHPSpec 测试生成覆盖率报告的方法吗? 我考虑过 xdebug,但据我所知它不能为 jenkins 生成报告。 最佳答案 就目前 (1.4.0) 而言,它还不支持代码覆盖率。很高兴听
如果我无法访问或使用任何 Eloquent 方法,使用 PHPSpec 有什么意义? 例如:($this 指的是 Eloquent Product 模型) function it_removes_pr
我很好奇指定处理文件操作的类的最佳方式。 假设我有一个虚构的类,其方法duplicate 的工作是复制文件的内容。 workDir = vfsStream::setup('workDir');
我不知道这个方法是如何工作的。这是我尝试使用它的示例: namespace spec; use PhpSpec\ObjectBehavior; class MyObjectSpec extends O
当我尝试创建它时,我在我的测试类中看到了警告。我不想为测试类创建 PHPDoc 和更多内容,但 PhpStorm 向我显示警告,因为 PhpStorm 无法将测试类标记为排除 phpcs。 我如何运行
使用 query_builder 的anonymous function 测试此表单的正确方法是什么? use Doctrine\ORM\EntityRepository; // ... $build
我肯定我漏掉了一些明显的东西。但是我在安装和使用 phpspec 时遇到问题。首先我不知道我应该使用 phpspec 还是 phpspec2。 我试过这样安装:- PEAR(不起作用)- git hu
我正在使用 Windows。我用 composer 安装了 phpspec 包,我将文件夹 phpspec/bin/添加到我系统的路径变量中。但是当我尝试运行 phpspec 命令时,出现以下错误:
有没有一种方法可以测试 getNumberOfProductsForCategory 方法将返回一个整数而不是一个特定值(在本例中为 18)? 我觉得简单地测试“18”虽然现在是正确的,但会使我的测试
过去我总是偶然发现 phpspec 的某个问题: 假设我有一个方法调用另一个对象的多个方法 class Caller { public function call(){ $thi
假设我有一个 RuleFactory 的这个方法: public function makeFromArray($rules) { $array = []; foreach ($rul
我是一名优秀的程序员,十分优秀!