ruby - Ruby Minitest 基本介绍

标签 ruby testing minitest assertion

我是第一次使用 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 测试可以描述如下(断言 语法):

  1. 它只是一个简单的 Ruby 文件,它有一个类,通常是 Minitest::Test 的子类。
  2. setup 方法将首先被调用;您可以定义每个测试中可能需要的对象。例如:考虑在 setup 方法的实例变量中分配 Player 对象的实例,以便您可以在测试类的其他地方使用它。
  3. 在以字符串开头的方法中定义了一个测试:test_;可以使用任何其他方法来减少代码重复,但它不会被视为测试的一部分。
  4. 通常,您应该考虑测试您要测试的方法的返回值。
  5. 用外部输入测试一个方法是more convoluted ,我建议从具有可测试输出的测试方法开始。

关于ruby - Ruby Minitest 基本介绍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28026749/

相关文章:

ruby-on-rails - Ruby/Rails - 链接未知数量的方法调用

ruby-on-rails - rails中类属性的未定义方法错误

ruby - 在 Ruby 中,如何将此字符串格式转换为哈希值

testing - 是否有必要在所有浏览器上运行自动化脚本(例如 Selenium 脚本)?

ruby-on-rails - Rails 6.1 升级后,作业规范用 Minitest::UnexpectedError 包装错误

ruby - 如何仅从哈希中提取时间项?

google-app-engine - 如何在开发环境中测试后端实例的并发?

iphone - 在 iPhone 模拟器中模拟电话中断

ruby-on-rails - Rails 测试(MiniTest)中assigns 方法的目的是什么?

ruby-on-rails - 为什么 Rails 不会在运行之间重置测试数据库