首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >stdClass对象的Phpspec匹配失败

stdClass对象的Phpspec匹配失败
EN

Stack Overflow用户
提问于 2015-03-21 11:10:37
回答 1查看 388关注 0票数 2

使用laravel 5应用程序,并且对phpspec有问题。为什么下面的Phpspec单元测试失败,或者更准确地说,我如何才能使stdClass对象键匹配,这样它就不会失败?

我的规范文件:

代码语言:javascript
复制
function it_checks_add_starting_date_to_flow()

    {      
    $dealflows = new \stdClass ();
    this->add_starting_date_to_flow($dealflows)->shouldReturn((object)[]);

    }

和我正在测试的助手函数:

代码语言:javascript
复制
public static function add_starting_date_to_flow($dealflows)
    {

    $dealflows= new \stdClass();
    return $dealflows;
    }

来自phpspec的我得到以下响应:

App/库/Mmdealhelpers

65 -它检查添加开始日期流预期obj:stdClass,但得到obj:stdClass。

代码语言:javascript
复制
  @@ -1,1 +1,1 @@
  -stdClass Object &000000001d025295000000007dd68060 ()
  +stdClass Object &000000001d02529a000000007dd68060 ()


    80 //                    ]
    81 //                    ));
    82                       $this->add_starting_date_to_flow($dealflows)->shouldReturn((object)[]);
    83 
    84         }
    85 


   0 vendor/phpspec/phpspec/src/PhpSpec/Matcher/IdentityMatcher.php:78
     throw new PhpSpec\Exception\Example\NotEqualException("Expected [obj:stdC...")
   1 [internal]
     spec\App\libraries\MmdealhelpersSpec->it_checks_add_starting_date_to_flow()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-21 20:12:40

shouldReturn()调用使用严格比较的身份匹配器。您的规范失败了,因为您期望的对象与从该方法返回的对象不同。

使用比较匹配器代替。它使用弱比较,可以用shouldBeLike()调用

代码语言:javascript
复制
function it_checks_add_starting_date_to_flow()
{      
    $dealflows = new \stdClass();
    $this->add_starting_date_to_flow($dealflows)->shouldBeLike((object)[]);
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29182016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档