在功能测试方法中运行 for 循环可以吗?

2024-04-14

在测试方法中运行 for 循环可以(概念上)吗?

我想测试控制器中的一系列参数值,以确定不同的输入是否返回正确的值。

  test "logged in user - add something - 0 qty" do
    @app = Factory.create(:app)

    (0..5).each do |t|
      @qty = t
      login(:user)
      get :add. :id => @app.id, :qty => @qty
      assert_nil(flash[:error])
      assert_response :redirect
      assert_redirect_to :controller => :apps, :action => :show, :id => @app.id
      if @qty = 0 
        assert_equal(Invite.all.count, @qty + 1)
      else 
        assert_something .........
    end
  end

类似的事情。


我通常尝试避免测试代码中任何类型的条件语句或循环。您希望测试尽可能简单,如果您开始在测试中包含逻辑,则必须进行测试them以确保它们按设计工作。我会将循环分解为单独的测试用例,这样如果其中任何一个失败,就可以更轻松地准确找出导致失败的输入。当测试失败时,导致失败的原因应该立即显而易见。您不必分析测试代码来找出答案。

Update:

我确实想补充一点,有一些极其罕见您希望在测试用例中存在循环的情况。一个具体的例子是当您测试并发问题时。这是一般规则的一个例外,您应该有一个非常充分且易于理解的理由来在测试中使用任何类型的逻辑。

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

在功能测试方法中运行 for 循环可以吗? 的相关文章

  • 使用哈希时 fetch 与 [] ? [复制]

    这个问题在这里已经有答案了 来自鲁比 科恩斯about hashes rb 为什么你可能想使用 fetch代替 当访问哈希键时 默认情况下 使用 如果存在则检索哈希值 如果不存在则返回 nil Using fetch给你一些选择 请参阅文档
  • 设计 - 创建用户帐户并确认而不发送电子邮件?

    我将设备与 facebook 集成 现在 当我在用户使用他 她的 Facebook 帐户登录后创建用户帐户时 user User create email gt data email password gt Devise friendly
  • 是否可以禁用特定 jQuery Ajax 调用的 Turbolinks 以防止页面刷新和滚动?

    我有一个 Rails 5 应用程序 非常想使用 Turbolinks 在应用程序中 有几个 PATCH ajax 调用 它们只是用新数据更新服务器 但不需要担心更新页面的状态 每当这些 ajax 请求返回时 Turbolinks 就会刷新页
  • 如果未引发异常,则通过 Python 单元测试

    在Python中unittest框架 是否有一种方法可以在未引发异常的情况下通过单元测试 否则会因 AssertRaise 而失败 如果我正确理解你的问题 你could做这样的事情 def test does not raise on va
  • rake cucumber 和 rake spec 始终使用“开发”环境

    我运行 Cucumber 和 RSpec 测试的 rake 任务始终使用我的development环境 以下是相关的配置文件 RAILS ROOT config environments cucumber rb Edit at your o
  • Rails error_messages 帮助器

    这是一段很常见的代码 First name br error messages是一个辅助方法 但我很难找到它的文档 为什么呢 我在这里找到它们 error messages 具有相同的参数错误消息 http apidock com rail
  • 如何将测试类打包到jar中而不运行它们?

    我正在努力将我的测试类包含到 jar 包中 但不运行它们 经过一番谷歌搜索后 我尝试过mvn package DskipTests 但我的测试类根本没有添加到 jar 中 有任何想法吗 如果您遵循 Maven 约定 那么您的测试类位于src
  • pytest:同一接口的不同实现的可重用测试

    想象一下我已经实现了一个名为的实用程序 可能是一个类 Bar在一个模块中foo 并为其编写了以下测试 测试 foo py from foo import Bar as Implementation from pytest import ma
  • Ruby/Rails - 如何创建类并从控制器访问它

    我一直在尝试使用一些不同的 gem 在 Rails 3 中显示谷歌地图 但遇到了一些问题 幸运的是我发现了这个https github com YouthTree bhm google maps https github com Youth
  • React Native - 在单元测试中模拟 FormData

    我在测试我的 thunk 时遇到问题 因为我的许多 API 调用都使用 FormData 而且我似乎不知道如何在测试中模拟它 我正在使用杰斯特 我的安装文件如下所示 import isomorphic fetch Mocking the g
  • 如何将枚举作为字符串存储到rails中的数据库中

    如何在 ruby 中创建迁移 其中默认值是字符串而不是整数 我想将枚举存储到数据库中 但我不想将其存储为整数 因为这样对于另一个应用程序来说没有意义想要使用同一张桌子 我该怎么做default female 代替default 0 clas
  • 以 Rails 形式处理 MongoMapper EmbeddedDocument

    首先 我对一般编程和 Rails 都是新手 我选择 Rails 是因为它看起来是一种很容易上手的语言 对于我的项目 我将 MongoMapper 与 Rails 结合使用 我正在尝试以与文档相同的形式处理嵌入文档 我有以下模型 class
  • 测试后 NUnit 回滚

    我对 NUnit 以及一般的自动化测试 还很陌生 我最近做了一些 Ruby On Rails 工作 并注意到在我的测试套件中 当我创建对象 例如新用户 并在套件过程中提交它们时 它们永远不会提交到数据库 以便我可以运行一遍又一遍地测试 不用
  • 不理解 Ruby ljust/rjust/center 方法

    我正在学习嵌套 我的任务是使每条新行都以缩进开头 这是我的代码 但它不起作用 nestingDepth 0 def logger description block puts Beginning description rjust nest
  • 如何让 DateTime.parse 返回您所在时区的时间?

    我需要这个 require date DateTime parse Mon Dec 27 6 30pm 返回 EDT 时区下午 6 30 的日期时间 但返回 UTC 时间 如何获取 EST 日期时间或将 UTC 日期时间转换为下午 6 30
  • x86 LargeAddressAware 兼容性的单元测试

    对于 win32 可执行文件 x86 我们可以设置 LargeAddressAware 标志 以便它在 x64 Windows 上运行时可以访问 4 GB 而不是仅 2 GB 的虚拟地址空间 这看起来很吸引人 然而 这也存在风险 例如参见
  • 从哈希中删除 nil 值

    我希望从哈希中删除具有nil value article是一个存储每篇文章的类 并且attributes方法将文章存储为散列 预期结果 articles results author null title Former bar manage
  • 我应该在单元测试中使用 AutoMapper 吗?

    我正在为 ASP NET MVC 控制器方法编写单元测试 这些控制器依赖于IMapper 我创建的用于抽象 AutoMapper 的接口 使用 Castle Windsor 通过构造函数注入传入 动作方法使用IMapper从领域对象映射到
  • Rails3 has_many 关系中子项计数的范围

    尝试在rails3中做一个范围 book has many chapters 我想要 range long 返回超过 10 章的书籍 如何最好地构建这个范围 不使用计数器缓存 thanks 这应该会让你继续 class Book scope
  • 可以通过 url 发送 JSON 吗?

    我有一个 ruby 哈希 其中键是 url 值是整数 我将哈希值转换为 JSON 我想知道是否能够通过 AJAX 请求在 url 内发送 JSON 然后从 params 哈希值中提取该 JSON 另外 我将把 JSON 化的 ruby 哈希

随机推荐

  • 如何在Spritekit中创建计时器?

    我已经弄清楚如何在单视图应用程序中制作计时器 但没有弄清楚 Spritekit 当我使用以下代码时 出现 2 个错误 如下所示 谁能帮我解决这个问题吗 谢谢 杰克 计时器 if scorelabel scorelabel SKLabelNo
  • Session_End 上的 asp.net 会话变量

    我需要访问 global asax cs 中 Session End 事件上的会话变量 但 HttpContext Current 为空 因此所有会话变量都不可访问 a 我可以以不同的方式访问用户会话 或者 b 在 Session End
  • 为什么以 utf-8 保存的文本文件比其他文件大?

    什么是 UTF 8 编码 为什么以 utf 8 格式保存的文本文件比其他格式的文件大 例如 我在记事本中输入 A 并将其保存为 UTF 8 格式 之后 文件大小变为 4字节 Why 几乎可以肯定 因为您用来保存文件的任何内容也包括字节顺序标
  • ISO15693 (NfcV) / Tag-it HF-I 命令引发标签丢失异常

    当我尝试收发 NFC V Tag it HF I Plus Inlay 标签的命令时 大多数命令都会出现 TagLostException 从我经历过的链接来看 这个异常可能是由不正确的命令引起的 如何为 Nfc V Tag it HF I
  • 如何在不使用“~”的情况下从 sass 加载器中的 node_modules 导入样式表

    我正在设置 Storybook 实例以从 Rails 应用程序加载样式 但它无法在我的应用程序中加载导入main scss文件 两者都是样式表node modules import react table react table css i
  • Hibernate JPA 序列(非 Id)

    是否可以对某些列使用数据库序列不是标识符 不是复合标识符的一部分 我使用 hibernate 作为 jpa 提供程序 并且我有一个表 其中有一些生成值的列 使用序列 尽管它们不是标识符的一部分 我想要的是使用序列为实体创建新值 其中序列的列
  • 合并 JSON 数组

    所以我的目标是合并 json 文件以获得以下格式 title NamesBook list name Ajay name Al 我的文件看起来像这样的格式 等等 json title NamesBook list name Ajay blu
  • 如何使用QtCopyDialog?

    我包括这个库 include
  • 如何在Python中检测两个文件是否相同[重复]

    这个问题在这里已经有答案了 在这种情况下 对 md5sum file1 和 md5sum file2 进行系统调用并比较两个返回值是否足够 如果您想做的不仅仅是检测它们是否不同 或者不信任哈希解决方案 标准库中有一些名为difflib ht
  • 我可以将 pandas.dataframe.isin() 与数字容差参数一起使用吗?

    我事先查看了以下帖子 有没有办法将 DataFrame isin 与近似因子或容差值一起使用 或者还有其他方法可以吗 如果列中的值位于一组值列表中 则过滤数据框行 https stackoverflow com questions 1206
  • 网页中的复选框 - 如何使它们更大?

    大多数浏览器中呈现的标准复选框都非常小 即使使用较大的字体也不会增加大小 显示较大复选框的最佳 独立于浏览器的方式是什么 如果这可以帮助任何人 这里有一个简单的 CSS 作为起点 将其变成一个基本的圆角正方形 大到足以容纳拇指 并具有切换的
  • Windows Phone 8 Facebook 身份验证

    我正在开发一个适用于 Windows Phone 8 的应用程序 我想让用户可以使用他们的 Facebook 帐户登录 这样他们就不必在我的应用程序上创建帐户 我看到了 Facebook SDK for NET 并决定使用它 因为它似乎非常
  • Axios:收到两个请求 OPTIONS 和 POST

    我正在尝试发布数据 一切正常 但我不知道为什么我收到两个请求OPTIONS POST POST OPTIONS 这是代码 const url http rest learncode academy api johnbob myusers e
  • 重叠圆的组合面积

    我最近遇到一个问题 我有四个圆 中点和半径 并且必须计算这些圆的并集面积 示例图片 对于两个圆来说 这很容易 我可以计算不在三角形内的每个圆圈面积的分数 然后计算三角形的面积 但是当有两个以上的圆圈时 我可以使用一种聪明的算法吗 找到外周上
  • Java“相当于”CSLA

    我读过该书的好几章CSLA http www lhotka net cslanet 我喜欢这本书 但最近我更倾向于 Java 所以我正在寻找基于 Java 的等效书 有谁知道任何接近的东西Java 中的 CSLA 我还愿意将其他现有技术很好
  • 一个 RDD 中的值与另一个 RDD 中的值部分/完全匹配

    我有两个 RDD 其中第一个 RDD 具有以下形式的记录 RDD1 1 2017 2 13 ABX 3354 gsfette 2 2017 3 18 TYET 3423 asdsad 3 2017 2 09 TYET 3423 rewriu
  • WPF滚动和焦点改变问题

    我的 WPF 应用程序滚动时遇到问题 这是交易 我的用户界面如下 我的应用程序的作用是充当许多应用程序的中心枢纽并启动它们 管理员可以启动其他用户记录的转储 因此 我有一个ListView 显示应用程序列表 如果需要 可以滚动 我定义了一个
  • Android 地图 v2 自定义标记的缩放位置不正确

    我知道这个问题以前已经讨论过 但我实际上找不到解决方案 我正在为我的标记添加自定义图标 markerUserLocation mMap addMarker new MarkerOptions position new LatLng poin
  • 为什么我无法在 Visual Studio 中整合项目 sdk 版本?

    首先 我收到此构建错误 但仅在某些机器上 错误 CS1705 程序集 与标识 版本 1 0 0 0 文化 中立 PublicKeyToken null 使用 System Net Http 版本 4 1 1 1 Culture neutra
  • 在功能测试方法中运行 for 循环可以吗?

    在测试方法中运行 for 循环可以 概念上 吗 我想测试控制器中的一系列参数值 以确定不同的输入是否返回正确的值 test logged in user add something 0 qty do app Factory create a