使用链式方法和参数模拟调用

2023-12-08

我正在学习如何使用模拟来运行一些单元测试,但我不知道如何模拟我的数据库类。它由单独的方法组成,这些方法可以像这两个示例一样链接起来:

$db->select('someTblName',['fieldName'])
   ->where('fieldName', 'someValue')
   ->runQuery()
   ->fetch(); //returns array or null

另一种用法可能是这样的:

$db->select('someTblName')
   ->where('fieldName', 'someValue')
   ->where('fieldName', array('>=' , 'someValue')
   ->runQuery()
   ->fetch(); //returns array or null

通过阅读一些文档,我发现我可以做类似的事情:(对于第一种情况)

$db = \Mockery::mock('Database');
$db->shouldReceive('select', 'where', 'runQuery', 'fetcth')
    ->with(??????)
    ->andReturn(null);

现在我感兴趣的是如何将“相应”参数传递给方法?而且,我将如何模拟第二种情况。


你可以做shouldReceive('select->where->runQuery->fetch')如果你不关心争论。如果您确实想检查参数,则必须执行以下操作来链接期望:

$db->shouldReceive('select')->with('someTblName', ['fieldName'])
    ->once()->andReturn(m::self())->getMock()
    ->shouldReceive('where')...

最后一个 shouldReceive 是shouldReceive('fetch')->andReturn(null).

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

使用链式方法和参数模拟调用 的相关文章

  • 抽象 PHP 类中的返回类型“self”

    尝试创建一个抽象类来部分实现其子类的功能并强制执行此实现所需的契约 我使用以下构造 abstract class Parent public static function fromDB string name instance new s
  • MySQL 启动错误 - 根元素丢失

    我在 Windows Server 2003 R2 上安装 MySQL 大约两个月了 启动时 我们会看到一个错误 显示 高严重性错误 根元素丢失 然后是另一个高严重性错误 显示 在调用 WriteToLog 方法之前必须定义日志文件路径 任
  • 配置 htaccess 以使用 Angular 和 PHP 路由

    我正在尝试使用 Angular 4 和 PHP 路由 但我无法配置它以便同时使用两者 我可以让它与其中之一一起工作 但不能同时与两者一起工作 这是我的文件夹结构 root index html vendor bundle js other
  • 根据注册后的时间自动删除Wordpress用户?

    在使用用户访问管理器的基本 WordPress 3 1 设置中 是否可以自动删除 x 天前的用户 我没有找到此功能的插件 人们将如何实施这一举措 我是否能够使用 sql 或 php 查询设置一个 cron 作业 从而每天自动从数据库中删除
  • 如何在 php 和 mongodb 中使用 findAndModify

    我想将 id 加 1 但运行 php 页面时出现问题 错误是 Fatal error Call to undefined method MongoCollection findAndModify in C wamp www 我的代码是
  • 如何从控制台 exe 禁用 nunit 中的卷影复制

    我在加载时遇到问题Nunit测试 dll 测试 dll 使用其他一些 exe 在构建时复制了一些目录和文件 我在通话时收到了该错误test dll来自 nunitconsole exe System IO DirectoryNotFound
  • Laravel 强制 SSL 给出“此网页有重定向循环”

    我正在使用 Laravel 4 1 并且想要在整个站点范围内强制使用 SSL 我的应用程序部署在 Heroku 上 将其添加到任一App before或作为过滤器 if Request secure return Redirect secu
  • 使用 Poedit 创建 POT 文件

    我正在拼命地尝试为我的 php 新应用程序创建一个目录 in 1 我创建了一个文件 trans php 其中放置了所有要翻译的值 例如 这是我的文件 2 我打开Poedit 在 路径 中这是我输入的内容 见图 然后我保存文件 php 的相同
  • 有什么办法可以打破 PHP 中的 if 语句吗?

    PHP中是否有任何命令可以停止执行当前或父进程if声明 与break or break 1 for switch loop 例如 arr array a b foreach arr as val break echo test echo f
  • 在 PHP 中扩展单例

    我正在使用一个 Web 应用程序框架 其中一部分由许多服务组成 所有服务均以单例形式实现 它们都扩展了一个 Service 类 其中实现了单例行为 如下所示 class Service protected static instance p
  • JWT 中的注销不起作用

    我是 Laravel 的新手 我安装了 JWT 并登录 所以它工作并生成了一个令牌 当我在邮递员中注销时它返回 true 但一次又一次它返回 true 和 auth gt 用户 注销后始终返回用户 这是我的代码 public functio
  • PHP 中的基本 URL

    我有一个两难的困境 它已经困扰我很长一段时间了 我有一个本地测试服务器 其设置如下 127 0 0 1 我的网站在离线模式下如下所示 127 0 0 1 websitename index php 我的网站实时版本如下所示 websiten
  • WooCommerce - 按下按钮时更新所有产品描述(全站点)

    我一直在使用以下代码 希望能够创建一个按钮 按下它 然后我网站上的所有描述都会自动生成 梦想 我的问题 为什么我的代码没有按预期更新所有产品 到目前为止 我有以下代码 虽然它在一定程度上可以工作 但当按钮位于产品页面上时无法正常工作 它将更
  • Laravel Eloquent 多对多查询 whereIn

    在我的应用程序中 我更新了关系one to many to many to many我正在尝试找出一种方法来保留相关功能 假设我有两个相关的表 例如狗和主人 如果我有很多主人 并且我想获取这些主人的狗 ID 列表 我应该如何雄辩地做到这一点
  • Python3模拟用另一个函数替换函数

    如何使用 python 中的另一个函数来模拟一个函数 该函数也将提供一个模拟对象 我有类似以下操作的代码 def foo arg1 arg2 r bar arg1 does interesting things 我想替换的实现bar函数 让
  • PHP 中的 __DIR__ 和 dirname(__FILE__) 有什么区别吗?

    对我来说看起来是一样的 但我不确定 因为有很多项目使用dirname FILE 他们的结果是完全一样的 所以 这没有什么区别 例如 以下两行 var dump dirname FILE var dump DIR 两者都会给出相同的输出 st
  • 将 Visual Studio 2012 C++ 单元测试项目链接到 exe 会导致访问冲突

    我从现有的整体 exe 本机 Visual Studio 2012 项目开始 我想添加一个本机单元测试项目 根据http msdn microsoft com en us library hh419385 aspx objectRef ht
  • PHP随机输出数组元素

    我如何从大约 20 个元素的数组中随机回显 5 个元素 Thanks 这有效吗 values array rand input 5 或者 作为更灵活的功能 function randomValues input num 5 return a
  • POST 之后在 PHP 中设置 Location 标头时避免 HTTP 302 响应代码

    我需要放一个201 CreatedPOST 请求的响应代码和 Location 标头 但由于某种原因我仍然收到 302 响应 这就是我所拥有的 header HTTP 1 1 201 header Location The new reso
  • 在 Bluemix 中激活 PHP 扩展

    这纯粹是 Bluemix 问题 我的代码在本地主机上顺利运行 但是当我将其迁移到 Bluemix 时 我的数据库连接失败了 检查日志 我发现问题 调用未定义的函数 mysqli init HTTP 响应 500 我发现扩展已被禁用以使其更小

随机推荐

  • RFCOMM_CreateConnection - 已打开状态:2,RFC 状态:4,MCB 状态:5

    我正在编写一个 Android 应用程序 它使用 RFCOMM 通过蓝牙连接到设备 我使用 BluetoothChat 示例作为建立连接的基础 并且大多数时候一切都运行良好 但是 有时我无法重新连接 因为出现套接字已打开的消息 RFCOMM
  • 带日期的 Matplotlib - 更改每月数据的标签和刻度

    我有一个像这样的数据框 data list range 106 index pd period range 3 1 2004 12 1 2012 freq M df2 pd DataFrame data data index index c
  • Xcode 4.5 - 在我的设备上无线构建应用程序

    所以最近我的 iPhone 4 决定停止工作 我无法再使用 USB 将其连接到我的 Mac 或 PC 只有当我将它连接到墙上插座中的 USB 时它才会充电 并且我必须按下 30 针插入时连接器向上 但这是另一个问题 问题是我无法再在我的设备
  • 如何正确转换json数组?

    我对 vb net 有点生疏 我需要你的帮助来编码 monday start 09 00 end 18 00 breaks start 11 20 end 11 30 start 14 30 end 15 00 tuesday start
  • 如何将 Array[Seq[String]] 传递给 apache Spark udf? (错误:不适用)

    我在 scala 中有以下 apache Spark udf val myFunc udf userBias Float otherBiases Map Long Float userFactors Seq Float context Se
  • 当我尝试访问从数据库获取的对象的字段时出现 NoMethodError

    假设我有一个名为 Tweet 的模型 其中包含以下字段 1 id 2 内容 3 创建时间 4 用户id 5 original tweet id 现在假设我使用以下查询 tweet Tweet where id 64 查询此模型 并且此查询返
  • 如何一一连续加载URL

    我想一个接一个地加载URL 我使用字符串数组来存储URL 我的要求是 如果webview加载第一个url 它应该在页面启动时打印消息 页面开始 当页面完成时它应该显示 页面完成 第一个 URL 加载完成后 它应该加载第二个 URL 并继续相
  • 欧拉计划 8 - Haskell

    通过欧拉项目 我将我的解决方案与其他解决方案进行比较here 对于问题 8 我的代码生成了正确答案 通过网站上的校验和确认 23514624000 module Main where import Data List main do pri
  • 带有自签名证书的 VBA ServerXMLHTTP https 请求

    我正在使用 ServerXMLHTTP 对象对 excel 2007 vba 脚本发出一些 http 请求 但我需要连接到使用自签名 SSL 证书的 https 服务器 因此默认情况下我收到消息 证书颁发机构无效或不正确 有没有办法配置 S
  • 使用 C# 将 CSV 文件读入数组

    我正在尝试编写代码来引入 读取和分离 csv 文件 它有四列 没有标题 我已经在网上搜索了几个小时 但似乎没有人真正找到答案 所以我希望这里有人可以 读入后 我需要能够非常具体地拉出它 因为它是设计的一部分 提前致谢 你的问题有点模糊 但我
  • 重定向 Ascx 页面

    是否可以使用重定向 ascx 页面 Response Redirect 我的代码是 HttpContext Current Response Redirect postauthenticated employeereprintw2reque
  • 有什么好的 Winforms 向导库吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在寻找一个好的 Winforms 向导 库 所见即所得编辑器是首选 但不是必须的 你几乎必须扮演自己的角色 这并不难 我在 30 分钟内写了一篇
  • 在 React 构造函数中调用 super() 会做什么?

    学习Reactdocs并遇到了这个例子 class Square extends React Component constructor super this state value null 根据Mozilla super 允许您使用th
  • 从 IE 下载“签名已损坏或无效”

    我获得了 Certum 证书来签署我的 C 应用程序 一切似乎都正常 我可以执行该应用程序 并且还可以看到其上的有效证书 但是 如果我将其上传到我的网页 使用 Visual Studio 发布或同时上传 EXE 我无法在 Windows7
  • 如何恢复多个 Git 提交?

    我有一个 Git 存储库 如下所示 A lt B lt C lt D lt HEAD 我希望分支的头指向 A 即我希望 B C D 和 HEAD 消失 并且我希望 head 与 A 同义 听起来我可以尝试重新设置基准 不适用 因为我已经在两
  • 通过 MultipartEntity 发送 Unicode 字符

    我有一种使用 MultipartEntity 内容类型将图像和文本作为 HttpPost 发送的方法 对于英文符号 一切都很好 但对于 unicode 符号 例如 Cyrliics 它仅发送 所以 我想知道如何正确设置 MultipartE
  • AVAssetReader 到 AudioQueueBuffer

    目前 我正在做一个小测试项目 看看是否可以从 AVAssetReader 获取样本 以便在 iOS 上使用 AudioQueue 进行播放 我读过这个 使用 AudioQueue 播放原始未压缩声音 没有声音 和这个 如何使用 AVAsse
  • NodeJS:在迭代之间等待的异步循环

    我试图在将对象数组 objects 保存到数据库 使用 mongoose 的 mongoDB 之前进行一些检查 这些对象已经按日期排序 因此objects 0 date 低于objects 1 date 每个对象应检查最后一个相关保存的对象
  • 方法名称应为 c#

    我有一个事件处理程序 我想将一些参数传递给事件 像这样 该行触发错误 需要方法名称 p Click new System EventHandler P Click sender new MyEventArgs design reader1
  • 使用链式方法和参数模拟调用

    我正在学习如何使用模拟来运行一些单元测试 但我不知道如何模拟我的数据库类 它由单独的方法组成 这些方法可以像这两个示例一样链接起来 db gt select someTblName fieldName gt where fieldName