我是第一次使用 minitest,我很难理解如何编写我的第一个测试方法。谁能帮助我理解我应该在下面的 Player 方法 get_name 中测试什么?
class Player
def get_name(player)
puts `clear`
center("#{player}, whats your name bro/ladybro?")
@name = gets.chomp
until @name =~ /\A[[:alnum:]]+\z/
center("you can do a combination of alphanumeric characters")
@name = gets.chomp
end
end
end
这是我的测试文件中的内容,我想我只是想测试正则表达式以确保它包含字母和数字字符。
class TestPlayer < Minitest::Test
def test_get_name
describe "get_name" do
it "should allow an input of alphanumeric characters" do
assert_match(/\A[[:alnum:]]+\z/, "test_string123")
end
end
end
end
但是当我运行测试时,似乎什么也没有发生,我想我应该有 1 个断言。
Run options: --seed 10135
# Running:
.
Finished in 0.001565s, 638.9776 runs/s, 0.0000 assertions/s.
1 runs, 0 assertions, 0 failures, 0 errors, 0 skips
任何人都可以帮助演示我应该如何为这种情况编写测试吗?谢谢。
最佳答案
Minitest 测试可以描述如下(断言 语法):
- 它只是一个简单的 Ruby 文件,它有一个类,通常是
Minitest::Test
的子类。 setup
方法将首先被调用;您可以定义每个测试中可能需要的对象。例如:考虑在setup
方法的实例变量中分配Player
对象的实例,以便您可以在测试类的其他地方使用它。- 在以字符串开头的方法中定义了一个测试:
test_
;可以使用任何其他方法来减少代码重复,但它不会被视为测试的一部分。 - 通常,您应该考虑测试您要测试的方法的返回值。
- 用外部输入测试一个方法是more convoluted ,我建议从具有可测试输出的测试方法开始。
关于ruby - Ruby Minitest 基本介绍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28026749/