默认情况下,PHPUnit 模拟对象从未期望过

2024-04-11

如果没有正式定义的期望,有没有办法告诉 phpunit 模拟对象永远不要期望方法调用?


在我看来,不要对每种方法都抱有期望是没有道理的。所以 phpunit 没有任何功能。仅当您想完全确保某些方法不会被调用时,才应使用“从不”期望。

无论如何,你可以使用一些匹配器来接近你的目标。例子:

永远不要期望所有对象的方法(如果调用任何模拟方法,则会失败):

$mock->expects($this->never())
    ->method($this->anything());

因此,例如,您可以测试某些对象不会调用除测试方法之外的任何方法:

$mock = $this->getMock('Some\Tested\Class', array('testedMethod'));
$mock->expects($this->never())
    ->method($this->anything());

您也可以尝试使用另一个匹配器,例如。matchesRegularExpression:

$mock->expects($this->never())
    ->method($this->matchesRegularExpression('/get.*/'));

例如,如果调用任何 getter,上面的方法将会失败。

我知道这并不完全是您想要的,但恐怕 phpunit 没有这样的解决方案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

默认情况下,PHPUnit 模拟对象从未期望过 的相关文章

  • 对内核模块代码进行单元测试是否可行?

    如果是这样我应该使用什么技术 我正在考虑使用 hippomock 因为它们可以用来模拟 C 方法 还有更好的方法吗 如果是这样 任何人都可以提供建议 或者您认为内核的单元测试是否太过分了 从 Linux 内核版本 5 5 开始KUnit可用
  • 使用 phpunit 9.5 捕获警告、通知和弃用

    Quoting https phpunit readthedocs io en 9 5 writing tests for phpunit html testing php errors warnings and notices https
  • 如何运行特定的 phpunit xml 测试套件?

    我如何选择要执行的特定测试套件 phpunit 配置 config xml 配置 xml
  • 获取 `TypeError: jest.fn 不是一个函数`

    我正在尝试使用 Jest 创建以下单元测试 jest dontMock pointsAwardingActions js describe points awarding actions gt describe award points g
  • 如何使用 PEAR 安装程序完全删除 PHPUnit?

    几天前 我使用 PEAR 安装程序安装了 PHPUnit 我还安装了 Selenium RC 用于 PHP 测试 现在我想卸载它 同时删除所有相关的文件夹和文件 我运行了以下命令 pear uninstall phpunit PHPUnit
  • phpunit 避免模拟的构造函数参数

    有什么方法可以避免 phpunit 调用模拟对象的构造函数 否则我需要一个模拟对象作为构造函数参数 另一个模拟对象作为构造函数参数 等等 api 似乎是这样的 getMock className methods array array ar
  • JUnit 测试 Spymemcached 客户端

    我有一个类围绕spymemcached 客户端 我想编写一些JUnit 测试来测试getValue 和addKey 方法是否有效 问题是无法从测试服务器访问spymemcached 服务器 所以我想这里需要一些模拟 我的简化类看起来像这样
  • 如何使 PHPunit 在警告时返回非零退出状态

    当在一些失败并出现警告的测试中调用 PHPunit 时 我得到 phpunit c phpunit xml group app Warning MongoCollection insert expects parameter 1 to be
  • 如何测试具有多个输入调用的循环?

    我正在尝试测试一个依赖多个用户输入来返回某个值的函数 我已经在这里寻找了多个答案 但没有一个能够解决我的问题 我看到了参数化 模拟和猴子补丁的东西 但没有任何帮助 我认为很大程度上是因为我没有清楚地理解正在做的事情背后的概念 并且我无法适应
  • Selenium RC:如何检查元素是否具有给定属性?

    我有一些带有onclick属性和一些没有属性 我想检查指定的元素是否具有onclick属性 我怎样才能做到这一点 getAttribute 当有属性值时返回该属性值 如果没有 它会抛出 RuntimeException 并停止测试 即使我将
  • 如何修复在 laravel 项目中运行vendor/bin/phpunit 时权限被拒绝的问题

    每当我执行vendor bin phpunit在我的 laravel 项目的根路径中 它返回一个没有权限错误 我该如何解决这个问题 重要提示 我不想使用composer update或删除部分或全部vendor 目录然后使用composer
  • 使用 jest 存根函数

    有没有办法使用 jest API 来存根函数 我习惯于使用 sinon 存根 在这里我可以使用存根为来自我的测试单元的任何函数调用编写单元测试 http sinonjs org releases v1 17 7 stubs http sin
  • 起订量要求?违背了目的?

    是否需要虚拟化您想要模拟的所有属性访问器就违背了模拟的目的 我的意思是 如果我必须修改我的对象并虚拟化我想要模拟的每个访问器 我难道不能继承我的类并自己模拟它吗 你的问题非常有效 但如果你仔细想想 没有其他方法可以模拟课程 如果你采用一个接
  • 如何嘲笑一切?

    我了解如何模拟接口或虚拟方法调用 但是像 TypeMock 这样的框架可以模拟框架中的所有内容 使用哪些 NET机制来提供此类功能 例如 Typemock Isolator 使用 CLR分析器API http msdn microsoft
  • BrowserKit 组件不可用

    当我尝试启动功能测试时出现错误 BrowserKit 组件不可用 php bin phpunit usr bin env php PHPUnit 6 5 14 by Sebastian Bergmann and contributors T
  • Moq - 是否可以在不使用 It.IsAny 的情况下设置模拟

    我一直使用 Moq 进行单元测试 有时我会嘲笑有很多参数的方法 想象一下这样的方法 public class WorkClient public void DoSomething string itemName int itemCount
  • phpunit --debug 仍然只显示点

    我想查看 phpunit 运行期间当前执行的测试 我用 debugparam 但仍然只得到点 phpunit debug PHPUnit 3 7 19 by Sebastian Bergmann Configuration read fro
  • 为什么 PHPUnit 将一些右大括号显示为未被覆盖?

    我正在使用 PHPUnit 3 6 7 PHP CodeCoverage 1 1 1 和 Xdebug 2 1 2 当我让 PHPUnit 将代码覆盖率统计信息写入 clover 样式的 XML 文件时 它偶尔会显示一个右花括号 表示测试未
  • 运行PHPUnit测试时如何避免内部调用函数?以及如何设置内部性能的模拟数据?

    我有一个类 Receipt php
  • Spring MockMVC、Spring 安全和 Mockito

    我想测试一个Spring Boot休息控制器 使用Spring security 并在其中使用模拟 我尝试过使用 Mockito 但我认为任何模拟工具都应该可以解决问题 为了在我的测试中启用 Spring 安全性 我首先执行以下操作 Run

随机推荐

  • 哈斯克尔的教堂名单

    我必须实现 haskell 地图函数来处理教堂列表 其定义如下 type Churchlist t u t gt u gt u gt u gt u 在 lambda 演算中 列表的编码如下 c n n 1 2 3 c n c 1 c 2 c
  • Laravel 错误:请提供有效的缓存路径

    我克隆了一个 Laravel 5 2 项目 当我执行composer install时 出现错误 InvalidArgumentException Please provide a valid cache path 这些文件夹存在 stor
  • 有用的二进制差异工具(除了 msdn[apatch 和 mpatch]、xdelta、bsdiff、vbindiff 和 winmerge)[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我需要一个二进制 diff 工具 它可以从比较的 8MB 文件 dat 压缩文件 生成补丁文件 并且可以将生成的补丁文件合并到旧的 dat
  • 返回“System.Byte[]”而不是实际数据

    此代码旨在计算并打印桌面上文件的 MD5 哈希值 但是 在编译时 写入控制台窗口的所有内容都是 System Byte 放置 ToString 也没有解决问题 MD5 a MD5 Create Console Write a Compute
  • 使用 -fopenmp 和 -lgomp 链接 OpenMP 之间的区别

    最近几天我一直在努力解决一个奇怪的问题 我们使用 GCC 4 8 创建一些库 静态链接它们的一些依赖项 例如 log4cplus 或 boost 对于这些库 我们使用 boost python 创建了 Python 绑定 每次这样的库使用
  • 如何绘制这样的自定义颤动边框?

    我想要有关如何实现自定义边框的想法 如下图所示 我制造了一个CustomPainter绘制形状 class MyPainter extends CustomPainter Color color MyPainter required thi
  • Go 中 int 到 string 的转换是如何工作的?

    我今天才开始使用 Go 所以这可能是显而易见的 但我找不到任何内容 什么是var x uint64 0x12345678 y string x give y I know var x uint8 65 y string x 会给y字节 65
  • 在 Android 中使用共享首选项与捆绑包

    我正在制作的应用程序从数据库中的表中检索 1 到 2 打记录 以便在应用程序期间可以使用某些数据 该表有 6 个字段 它不需要永久存储在设备上 共享首选项是否用于类似的事情 或者我应该使用捆绑包 您可以只查询数据库并获取所需的数据并将其以正
  • 如何关闭所有 pyplot 窗口(包括之前脚本执行的窗口)?

    所以我有一些 python 代码 使用 pyplot 绘制一些图表 每次运行脚本时都会创建新的绘图窗口 我必须手动关闭该窗口 如何在脚本开始时关闭所有打开的 pyplot 窗口 IE 关闭先前执行脚本期间打开的窗口 在 MatLab 中 这
  • if (x==0||7||14||21||-7||-14) {y=星期四;} [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 你能像这样
  • 使用 Google Analytics 跟踪 XML Web 服务上的点击次数

    我有一个 xml Web 服务 我想使用 Google Analytics 进行跟踪 由于它使用小型客户端 JavaScript 来进行跟踪 因此这是一个问题 是否可以在不运行 javascript 客户端服务器端的情况下解决此问题 也许这
  • Sails.js 如何修改路由以解释逗号分隔的 id 列表

    根据一些 JSON API 规范 例如http jsonapi org format urls individual resources http jsonapi org format urls individual resources 服
  • Bash:执行存储在变量中的命令[重复]

    这个问题在这里已经有答案了 我正在编写一个脚本 其中一部分没有按我的预期工作 为了简单起见 我在一个简单的例子中分解了这一部分 echo echo gt tmp while read cmd do cmd done 在这里 我希望 cmd
  • mongodb有路径通配符吗?

    我有一个 mongodb 集合 其中每个文档都有一个树结构 第一个级别是国家 地区代码 第二个级别是操作系统 第三个级别是处理器类型 最后的值是性能分数 AU OSX x86 64 17 4 RU Android A9 14 2 x86 7
  • 如何从Excel中读取数据并逐行写入文本文件?

    我想编写代码从 Excel 获取数据并将其写入文本文件 这是我的代码 import xlrd import os path wb xlrd open workbook os path join D TRB 2014 Data SPS1 de
  • 为什么 std::string 不是 std::vector 的特化? [复制]

    这个问题在这里已经有答案了 将字符串视为字符向量似乎是显而易见的 那么为什么 string 有它自己的特殊实现 它看起来与向量类有很大不同呢 只是为了说明这一点 这里有两个课程的一些片段 以表明所需的工作非常相似 例如两者都使用分配器来管理
  • 页面刷新期间的 selenium.common.exceptions.StaleElementReferenceException

    页面包含一些数据 行数很少的表 有 刷新 按钮 可以重新加载和重新绘制页面上的某些元素 而无需重新加载静态数据 ajax 我正在尝试为该页面创建适当的测试 但有时会出现 StaleElementReferenceException 我的代码
  • 多元二分法

    我需要一种算法来执行二维二分法来解决 2x2 非线性问题 示例 两个方程f x y 0 and g x y 0我想同时解决这个问题 我非常熟悉一维二分 以及其他数值方法 假设我已经知道解决方案位于界限之间x1 lt x lt x2 and
  • 在 Android 上的活动之间保持蓝牙连接 [重复]

    这个问题在这里已经有答案了 可能的重复 Android 如何将蓝牙连接传递给另一个活动 https stackoverflow com questions 6872970 android how to pass a bluetooth co
  • 默认情况下,PHPUnit 模拟对象从未期望过

    如果没有正式定义的期望 有没有办法告诉 phpunit 模拟对象永远不要期望方法调用 在我看来 不要对每种方法都抱有期望是没有道理的 所以 phpunit 没有任何功能 仅当您想完全确保某些方法不会被调用时 才应使用 从不 期望 无论如何