如何在 ruby​​ 代码中添加断言

2024-07-03

我想使用断言并将评估放入我的 ruby​​ 代码中(例如:检查是否创建了 zip 文件、标签是否存在、文本区域中的消息等)。我已经放了一些断言语句,例如assert @selenium.is_text_present(textMessage),但它们不起作用。

如果要安装任何用于断言的 ruby​​ gem,请告诉我。


对于简单的断言,您可能最好使用自己的断言方法来获取块:

ruby-1.9.1-p378 > class AssertionError < RuntimeError
ruby-1.9.1-p378 ?>  end
 => nil 
ruby-1.9.1-p378 > def assert &block
ruby-1.9.1-p378 ?>  raise AssertionError unless yield
ruby-1.9.1-p378 ?>  end
 => nil 
ruby-1.9.1-p378 > assert { 1 > 0 }
 => nil 
ruby-1.9.1-p378 > assert { 5 == 12 }
AssertionError: AssertionError
    from (irb):8:in `assert'
    from (irb):11
    from /Users/mr/.rvm/rubies/ruby-1.9.1-p378/bin/irb:17:in `<main>'

以可复制粘贴的形式:

class AssertionError < RuntimeError
end

def assert &block
    raise AssertionError unless yield
end

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

如何在 ruby​​ 代码中添加断言 的相关文章

随机推荐

  • 如何获取音频JS的位深度/采样率?

    我需要获取由标准输入元素加载的音频文件的采样率 我尝试使用这个功能 function func e let reader new FileReader reader readAsArrayBuffer e files 0 reader on
  • 永久更改节点调用堆栈大小

    我想增加 stack sizeNodejs 系统范围的选项 我知道我可以在每次调用的基础上执行此操作 如下所示 node stack size 10000
  • 将字符移动到字符串中会使迭代器失效吗?

    所以迭代一个字符串并使用operator 或插入更改字符会使迭代器无效 像这样的迭代也是如此吗 std string str ABCD for auto c str for int i 0 i lt 3 i switch c case A
  • 从 OpenFileDialog 路径/文件名中提取路径

    我正在编写一个小实用程序 首先选择一个文件 然后我需要选择一个文件夹 我想将文件夹默认为所选文件所在的位置 OpenFileDialog FileName返回完整路径和文件名 我想要的是获得路径部分 无文件名 所以我可以用它作为初始选定的文
  • 在 docker 容器中针对 Localstack 运行 shell 脚本

    我一直在使用 localstack 开发本地服务 我刚刚通过运行他们的 docker 镜像docker run rm p 4567 4583 4567 4583 p 8080 8080 localstack localstack 然后我手动
  • 数据库异常 - 一般错误:1021 磁盘已满

    谁能帮我理解为什么这个查询说光盘已满 数据库异常 SQLSTATE HY000 一般错误 1021 磁盘已满 tmp sql 1445 3 MAI 等待有人释放一些空间 错误号 28 设备上没有剩余空间 Query 这是服务器问题 只有楼主
  • 覆盖 jQuery 函数

    有没有办法覆盖 jQuery 的核心功能 假设我想添加一个警报 this length 大小为 function 而不是将其添加到源中 size function alert this length return this length 我
  • 命名 GCP 项目的建议[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在构建一个移动约会应用程序 并计划利用谷歌的云基础设施 我试图弄清楚整个应用程序是否应该存在于单个 GCP 项目中 在阅读最佳实践文档 ht
  • 如果进程中的一个线程崩溃会发生什么?

    我有两个菜鸟问题 1 为什么node js在单线程中运行 为什么不直接使用进程本身呢 或者在线程中而不是在进程中运行它有什么优点 2 如果进程中的线程崩溃会发生什么 我知道 未处理的异常将导致进程退出 但是如果正确捕获它会发生什么 或者像浮
  • 除非我在其中放入 printf 语句,否则代码会崩溃

    这是我正在使用的数组库中的代码片段 这在 Windows 上运行良好 但是当我在 Linux 上使用 gcc 编译时 如果此函数崩溃 当试图缩小问题范围时 我向其中添加了一条 printf 语句 代码不再崩溃 void arrayCreat
  • ConstraintLayout 视图位于左上角

    每次我创建这样的视图时Button and TextView in ConstraintLayout 它们都卡在顶角而不是我放置它们的位置 我尝试创建新的活动并更改模拟器 但结果仍然相同 这是正在发生的事情的屏幕截图 可能是什么问题 如中所
  • Mongotemplate.updateFirst() 不更新@LastModifiedDate

    我正在使用基于注释的配置 Configuration Profile default ComponentScan basePackages com EnableMongoRepositories EnableMongoAuditing pu
  • 创建SparkContext失败

    我正在用 scala 代码在 Spark shell 中测试 Spark 我正在构建使用 Kafka 和 Spark 的原型 我跑了spark shell像下面这样 spark shell jars spark external kafka
  • Microsoft Teams 身份验证:无法在团队机器人 (V4 SDK) 中检索令牌

    我有一个微软团队机器人我正在尝试使用以下方式对用户进行身份验证AAD v2 端点 该机器人使用V4 SDK 和 OauthPrompt 我可以登录但无法获取令牌 我正在使用 OAuth 卡 该卡正在 Teams 内渲染 单击登录按钮后 它将
  • 如何将 SQL Server 存储过程的返回值获取到 nHibernate 中?

    1 数据库平台 SqlServer 2 数据访问 nHibernate 1 2 现在我们需要通过 nHibernate 访问存储过程 如下所示 ALTER PROCEDURE TestProc AS BEGIN Select From Us
  • 在 Django 管理站点中显示自定义模型验证异常

    我有一个预订模型 需要检查预订的商品是否可用 我希望有一个逻辑来确定该项目是否可用集中 这样无论我在哪里保存实例 此代码都会验证它是否可以保存 目前 我的模型类的自定义保存函数中有此代码 def save self if self is a
  • MVP 模式 - 被动视图并通过 IView 公开复杂类型(Asp.Net、Web 表单)

    我最近切换到采用被动视图方法的 MVP 模式 当视图界面仅公开基本的 clr 类型 例如映射到 TextBoxes 的字符串 映射到 DropDownLists 的 IDictionary 映射到某些网格的 IEnumerable 中继器
  • 将 JSON 传递给 HTTP POST 请求

    我正在尝试使用以下命令向 google QPX Express API 1 发出 HTTP POST 请求nodejs and request 2 我的代码如下所示 create http request client to consume
  • .net 新进程沙箱用于不受信任的代码

    所以我需要在新进程中运行动态编译的不受信任的代码 我找到了如何在新的 AppDomain http msdn microsoft com en us library bb763046 aspx 中执行此操作 但没有在新进程中执行此操作 可以
  • 如何在 ruby​​ 代码中添加断言

    我想使用断言并将评估放入我的 ruby 代码中 例如 检查是否创建了 zip 文件 标签是否存在 文本区域中的消息等 我已经放了一些断言语句 例如assert selenium is text present textMessage 但它们