您如何使用 Minitest 进行嵌套测试?

Ada*_*ner 3 ruby-on-rails minitest

例如,在Jasmine 中,您可以这样做:

describe('Person', function () {
  describe('movement methods', function () {
    it('#run', function () {

    });
    it('#jump', function () {

    });
  });
});
Run Code Online (Sandbox Code Playgroud)

使用 Minitest,您似乎无法拥有“移动方法”类别。你只需要这样做:

class PersonTest
  def test_run
  end

  def test_jump
  end
end
Run Code Online (Sandbox Code Playgroud)

有没有办法在Minitest中嵌套?

jdg*_*ray 6

是的你可以。你可以做这样的事情(不是最漂亮的):

class Person < ActiveSupport::TestCase
  class MovementMethods < ActiveSupport::TestCase
    test "#run" do
      # something
    end

    test "#jump" do
      # something
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

还可以考虑使用minitest/spec,您可以编写与 Jasmine 片段更相似的测试用例:

require 'minitest/spec'

describe Person do
  describe 'movement methods' do
    it '#run' do
      # something
    end

    it '#jump' do
      # something
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

  • **注意**:`MovementMethods` 将充当 _parallel_ 测试用例而不是 _nested_ 测试用例。这意味着; `Person` 内的 `setup` 将 **never** 为 `MovementMethods` 内的任何测试执行。 (2认同)