以minitest测试链式有序方法

时间:2017-02-24 09:59:41

标签: ruby minitest

我有一个实现具有自然顺序的链式方法的类,如:

project = proj.new        # initialise object
project = project.create  # create directories for project
project.populate          # populate directories with contents

所以可以运行proj.new.create.populate

我正在努力用minitest测试这个并且觉得我正在解决这个问题:

class TestProj < Minitest::Test
  def project
    proj.new(dir = "testdir")
  end

  def test_create
    project.create
    assert file.exist?("testdir")
  end

  def test_populate
    project = project.create
    assert file.exist?("testdir")
    project.populate
    # other assertions here
  end
end

这看起来很糟糕,因为我们有重复的代码并且正在测试创建两次。我们应该免除test_create,但是test_populate正在测试多个东西吗?我们是否应该执行测试顺序并将结果从一个测试保存到下一个测试?我觉得我错过了“正确”的解决方案,但我很难找到它。

如果需要,很高兴提供更具体的代码,但我正在努力简化以找到问题的根源。

0 个答案:

没有答案