gpt4 book ai didi

Ruby minitest assert_output 语法

转载 作者:数据小太阳 更新时间:2023-10-29 07:03:49 26 4
gpt4 key购买 nike

我是 minitest 的新手,也是 ruby​​ 的新手,我真的厌倦了用谷歌搜索这个问题却没有结果。非常感谢您的帮助:

ruby minitest 中 assert_output 的确切语法是什么?

我在 github 或其他地方找到的所有内容似乎都使用括号。然而,当我不使用带有 assert_output 的 block 时,我收到一条错误消息,这是有道理的,因为此方法的定义包含 yield 语句。

但无论我怎样尝试,我都无法让它发挥作用。

测试类.rb

class TestClass
def output
puts 'hey'
end
end

测试测试.rb

require 'minitest/spec'
require 'minitest/autorun'
require_relative 'testclass'


class TestTestClass < MiniTest::Unit::TestCase
def setup
@test = TestClass.new
end

def output_produces_output
assert_output( stdout = 'hey' ) { @test.output}
end
end

我得到的是:

在 0.000000 秒内完成测试,NaN 测试/秒,NaN 断言

0 次测试,0 次断言,0 次失败,0 次错误,0 次跳过

我做错了什么?这一定是非常明显的事情,但我无法弄清楚。谢谢你的帮助。

最佳答案

为了让您的测试方法运行,方法名称需要以test_ 开头。还有,顺便assert_output有效的是该 block 将写入 stdout/stderr,如果参数与 stdout/stderr 匹配,将检查参数。检查此 IMO 的最简单方法是传入正则表达式。所以这就是我编写该测试的方式:

class TestTestClass < MiniTest::Unit::TestCase 
def setup
@test = TestClass.new
end

def test_output_produces_output
assert_output(/hey/) { @test.output}
end
end

关于Ruby minitest assert_output 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26854048/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com