你如何"嵌套"或"分组"测试::单元测试?

dan*_*neu 20 ruby ruby-on-rails testunit

RSpec有:

describe "the user" do
  before(:each) do
    @user = Factory :user
  end

  it "should have access" do
    @user.should ...
  end
end
Run Code Online (Sandbox Code Playgroud)

你会如何用Test :: Unit对这样的测试进行分组?例如,在我的控制器测试中,我想在用户登录时以及没有人登录时测试控制器.

小智 10

你可以通过类来实现类似的东西.可能有人会说这很糟糕,但它确实允许你在一个文件中分开测试:

class MySuperTest < ActiveSupport::TestCase
  test "something general" do
    assert true
  end

  class MyMethodTests < ActiveSupport::TestCase

    setup do
      @variable = something
    end

    test "my method" do
      assert object.my_method
    end
  end
end
Run Code Online (Sandbox Code Playgroud)


Mat*_*chu 6

Test::Unit据我所知,不支持测试上下文.但是,gemcontest添加了对上下文块的支持.

  • 为了节省一个15分钟的调试时间,比赛gem已经过时,不适用于我的Rails 4应用程序. (12认同)
  • Gem在Rails 5.2上也不起作用,请参阅https://github.com/citrusbyte/contest/issues/9 (3认同)