每个循环使用 Rspec 的单元测试用例

2024-01-04

我的模型中有以下方法

def get_performance_data para, child_para_hash
  performance_graph_data = {}
  child_para_hash.each do |cp|
    performance_graph_data[cp] =  fetch_per_child_para_data(para, cp)
  end
  performance_graph_data  
end


def fetch_per_child_para_data para, child_para
  test_performances.where(network_data_condition(para, child_para)).select("AVG(value)avg_value, activity").group('act_num')
end

我在理解如何为模型方法中的每个循环编写测试用例时遇到问题。


好的测试是关于验证方法的行为,而不是其内部工作原理。因此,根据发布的示例,您的测试应该检查#获取性能数据返回正确的值性能图数据由您的装置定义,不检查内部循环实现。

如果你的测试在概念上不是说“给定输入 X,我的结果应该始终是 Y”,那么你可能测试了错误的东西。一如既往,这条规则也有例外,但如果没有充分的理由,我不会违反这条规则。

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

每个循环使用 Rspec 的单元测试用例 的相关文章

随机推荐

  • 如何在 Laravel 5 表单中使用 Markdown 作为文本区域输入字段?

    在我的基于 Laravel 5 的项目中 我使用的是 Markdown 包http packalyst com packages package graham campbell markdown http packalyst com pac
  • Python Sphinx 锚点在任意线上

    如何使用 Sphinx 在 ReST 中的任意行设置锚点引用 为了更清楚 这里有一个例子 A title with an anchor some stuff 这将创建一个标题A title with an anchor并添加一个额外的on
  • 如何为 CSS 垂直下拉菜单添加延迟

    我需要为下拉菜单的鼠标悬停事件添加延迟 这样如果有人将鼠标悬停在菜单上并转到页面上的另一个链接 菜单不会立即下拉 感谢您的帮助 http jsfiddle net cgagliardi NPVVQ http jsfiddle net cga
  • saltstack jinja 中的“json”和“tojson”过滤器有什么区别吗?

    根据 saltstack 文档 它是 json https docs saltstack com en latest ref renderers all salt renderers jinja html https docs saltst
  • 在字典中循环

    我用这个 foreach KeyValuePair
  • 过滤查询以填充 FirebaseRecyclerAdapter

    目前尚不清楚如何使用自定义查询填充 FirebaseRecyclerAdapter 定义一个参考 这里 DatabaseReference ref mDatabase getReference child users 将其发送到适配器 in
  • 保护HTML5游戏来源

    人们对 HTML5 赞不绝口 但我主要关心的问题之一是如何保护我的游戏源代码 本质上 如何防止别人使用我们自己开发的游戏引擎 那是一笔巨大的资产 如何防止他人下载游戏并将其托管在其他平台 如何隐藏源中的服务器 API 调用详细信息 例如我们
  • Ruby 相当于 PHP 的 ucfirst() 函数

    在 Ruby 使用 Rails 如果相关的话 中将字符串的第一个字母大写的最佳方法是什么 注意String capitalize不是我想要的 因为除了将字符串的第一个字母大写之外 此函数还使所有其他字符小写 我不想要 我想保持它们不变 gt
  • 如何在 bash 脚本中获取文件的第一行?

    我必须在文件的第一行放入 bash 变量 我猜是用grep命令 但是有什么方法可以限制行数吗 head从文件中获取第一行 然后 n参数可用于指定应提取多少行 line head n 1 filename
  • 尝试使用 conda 时出现“语法错误:生成器表达式必须带括号”

    每当我尝试访问任何 anaconda 命令时 我都会遇到这个问题 事实上 当我尝试打开我的虚拟环境时 它也显示在那里 我已经重新安装了 anaconda navigator 但仍然没有结果 C Users Gagan Singh gt ac
  • 如何通过 holoviz 和 NetworkX 渲染 GraphViz Dot 文件?

    所以我看着docs https hvplot holoviz org user guide NetworkX html并看到他们使用 Graphviz 但不使用任何文件 而且我有一个4mil dot 70mb 图形文件 https gith
  • 在 Ubuntu 上找不到 RODBC 包中的 odbcConnectExcel 函数

    在 Ubuntu 上安装 RODBC 包有点麻烦 首先我学会了安装以下内容 sudo apt get install r cran rodbc 这还不够好 因为包仍在寻找头文件 我通过以下方式解决了这个问题 sudo apt get ins
  • 导出或保存 CX509PrivateKey

    是否可以以某种方式保存或导出CX509PrivateKey 我的想法是 我创建一个 CSR 发送给 CA 获取证书 然后 不知何故我必须获取私钥 但不知道如何获取 不幸的是在谷歌上没有找到任何内容 我的一段代码 var objPrivate
  • SQL INSERT 不指定列。会发生什么?

    在浏览心爱的 W3schools 时发现了这个page http www w3schools com sql sql insert asp并且实际上学到了一些有趣的东西 我不知道您可以调用插入命令而不指定值的列 例如 INSERT INTO
  • 使用jquery删除字符串中的span标签

    如何使用jquery从字符串中删除span标签 我在字符串变量中有多个跨度标签 p No Change span style color 222222 nbsp span I love cricket span style color 22
  • 满足条件后避免使用 IF 语句

    我在一个重复多次的循环内进行除法运算 碰巧的是 在循环的前几次 或多或少的前 10 个循环 中 除数为零 一旦它获得价值 除零误差就不再可能 我有一个if测试除数值的条件以避免 div 为零 但我想知道评估此值会对性能产生影响if在后续循环
  • Android 开发人员通常在 iPhone 上使用第三方 UI/网络库(例如 Three20)吗?

    我做过很多 iPhone 方面的工作 但从来没有做过 Android 方面的工作 在 iPhone 上 几个月后我发现了 Three20 库 非常棒 并开始移动我的代码 我不想在转向 Android 时犯同样的错误 所以我的问题是 Andr
  • Scala 2.10 TypeTag 用法

    我正在挖掘新的 scala 反射 api 但无法弄清楚为什么以下代码片段不能按预期工作 给定层次结构 尽力简化 import scala reflect runtime universe trait TF A implicit def t
  • 任务并行性 - 任务 OnCompleted 在所有ContinueWith之后触发

    我在处理任务时遇到问题 GetAwaiter OnCompleted new Action 我有一个带有多个ContinueWith的主任务 但是当我返回主任务并在OnCompleted上添加委托时 它会在处理主任务后触发 而不是在所有Co
  • 每个循环使用 Rspec 的单元测试用例

    我的模型中有以下方法 def get performance data para child para hash performance graph data child para hash each do cp performance g