热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Mock框架返回具有不同名称和类型的类-Mockframeworksreturnsclasswithdifferentnameandtype

Imtryingtocreateamocktosatisfyatypehintwiththiscode(Mockery):我正在尝试创建一个mock,以满足这个代码的类型

I'm trying to create a mock to satisfy a typehint with this code (Mockery):

我正在尝试创建一个mock,以满足这个代码的类型提示(伪代码):

return \Mockery::mock('\Contracts\Helpers\iFileSystemWrapper');

or this (PHPUnit):

或者这个(PHPUnit)):

return $this->getMock('\Contracts\Helpers\iFileSystemWrapper');

But the mock returned is called Mockery\Mock Object or Mock_iFileSystemWrapper_a5f91049. How am I supposed to type check this when it isn't an instance of what I need at all with either framework?

但是返回的mock模拟对象或Mock_iFileSystemWrapper_a5f91049。当这两个框架都不是我所需要的实例时,我应该如何输入check this ?

Why exactly is the mock framework trying to load the real class? If I wanted the real class I would include the real class.

为什么模拟框架要加载真实的类?如果我想要真正的课程,我会包括真正的课程。

This problem has slowed me down so many times when writing tests I'm about to just toss type hinting out the window and check class names instead, or simply use production objects as mocks are a pain to use.

当我编写测试时,这个问题已经让我慢了很多次,我只需要在窗口中输入暗示,然后检查类名,或者简单地使用产品对象作为模拟是很痛苦的。

2 个解决方案

#1


2  

I just experimented with an existing test of my own, and by changing the interface namespace name from one that exists to one that doesn't exist, I got exactly the same as what you describe (using phpunit). My mock object had the class name Mock_ViewInterface_c755461e. When I change it back to the correct interface name, it works fine.

我刚刚尝试了一个我自己的现有测试,通过将接口名称空间名称空间从存在的名称空间更改为不存在的名称空间,我得到了与您描述的完全相同的结果(使用phpunit)。我的mock对象的类名为Mock_ViewInterface_c755461e。当我将它更改为正确的接口名称时,它可以正常工作。

Therefore I would say that either:

因此,我要说:

  1. You are trying to use an interface name that doesn't exist (e.g. a typo or missing namespace component).
  2. 您正在尝试使用一个不存在的接口名称(例如,输入错误或缺少名称空间组件)。
  3. Your library code isn't being loaded for some reason, e.g. autoloading is not setup correctly in your unit test bootstrap.
  4. 由于某些原因,您的库代码没有被加载,例如,在单元测试引导中没有正确地设置自动加载。

#2


-2  

You need use a special function to check base class. Somthing like this:

您需要使用一个特殊的函数来检查基类。事情是这样的:

$mock = $this->getMock('MyClass');
$this->assertInstanceOf('MyClass', $mock);

推荐阅读
  • 【爬虫】关于企业信用信息公示系统加速乐最新反爬虫机制
    ( ̄▽ ̄)~又得半夜修仙了,作为一个爬虫小白,花了3天时间写好的程序,才跑了一个月目标网站就更新了,是有点悲催,还是要只有一天的时间重构。升级后网站的层次结构并没有太多变化,表面上 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • vue使用
    关键词: ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • 本文介绍了PE文件结构中的导出表的解析方法,包括获取区段头表、遍历查找所在的区段等步骤。通过该方法可以准确地解析PE文件中的导出表信息。 ... [详细]
  • C++中的三角函数计算及其应用
    本文介绍了C++中的三角函数的计算方法和应用,包括计算余弦、正弦、正切值以及反三角函数求对应的弧度制角度的示例代码。代码中使用了C++的数学库和命名空间,通过赋值和输出语句实现了三角函数的计算和结果显示。通过学习本文,读者可以了解到C++中三角函数的基本用法和应用场景。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
  • 如何在HTML中获取鼠标的当前位置
    本文介绍了在HTML中获取鼠标当前位置的三种方法,分别是相对于屏幕的位置、相对于窗口的位置以及考虑了页面滚动因素的位置。通过这些方法可以准确获取鼠标的坐标信息。 ... [详细]
  • 本文总结了在编写JS代码时,不同浏览器间的兼容性差异,并提供了相应的解决方法。其中包括阻止默认事件的代码示例和猎取兄弟节点的函数。这些方法可以帮助开发者在不同浏览器上实现一致的功能。 ... [详细]
  • Averysimpleproblem.ItrytorunaverysimpledemotocreatedanddisplayaWindowFramefromEc ... [详细]
  • c语言调用链表,c语言链表的实现
    本文目录一览:1、C语言创建链表,函数调用部分 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
author-avatar
yuyiyin乐悠悠_964
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有