我第一次使用minitest,我无法理解如何编写我的第一个测试方法。任何人都可以帮助我在下面的播放器方法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
但是当我运行测试时,似乎没有任何事情发生,我想我会假设有一个断言。
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
任何人都可以协助演示如何为这种情况编写测试吗?感谢。
答案 0 :(得分:1)
Minitest测试可能描述如下( Assertion 语法):
Minitest::Test
的子类。setup
将在第一个被调用;您可以定义每次测试中可能需要的对象。例如:考虑在Player
方法中的实例变量中分配setup
对象的实例,以便您可以在测试类的其他位置使用它。test_
;任何其他方法都可以用来减少代码的重复,但它不会被视为测试的一部分。