ruby - 使用 Test::Unit,如何在所有测试(但不是每个测试)之前运行一些代码?

标签 ruby testing testunit

在我使用 test::unit 的测试应用程序中,我需要首先从各种来源提取大量数据。我只想执行一次 - 数据只读,不写,并且不会在测试之间更改,加载(和加载错误检查)需要一些时间。

有些值我每次都想重置,这些很容易,但如果我想要持久的可访问值怎么办?执行此操作的最佳方法是什么?

我对可以让我将这些作业推送到可以包含在我所有测试中的某个模块的解决方案特别感兴趣,因为它们都需要访问这些数据。

最佳答案

为什么在测试中需要它?您可以将其定义为全局:

gem 'test-unit'#, '>= 2.1.1' #startup
require 'test/unit'

GLOBAL_DATA = 11

class My_Tests < Test::Unit::TestCase

  def test_1()
    puts "Testing startup 1"
    assert_equal(11, GLOBAL_DATA)
  end
end

GLOBAL_DATA 可以是一个(单例)类(对应一个实例)。

如果你只有一个测试类,你可以使用 TestCase.startup:

gem 'test-unit'#, '>= 2.1.1' #startup
require 'test/unit'


class My_Tests < Test::Unit::TestCase
  def self.startup
    puts "Define global_data "
    @@global_data = 11
  end

  def test_1()
    puts "Testing 1"
    assert_equal(11,     @@global_data = 11)
  end
  def test_2()
    puts "Testing 2"
    assert_equal(11,     @@global_data = 11)
  end
end

关于ruby - 使用 Test::Unit,如何在所有测试(但不是每个测试)之前运行一些代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7729444/

相关文章:

javascript - 导轨 : Filling in a dynamic field using capybara

ruby + 测试单元 + ci_reporter : No xml output

ruby-on-rails - 在 Ruby 中,我可以在初始化方法中以某种方式自动填充实例变量吗?

ruby - 如何在 gRPC ruby​​ 客户端中传递哈希对象

javascript - 测试 RxJS observable 来跟踪最后发出的值(没有完整信号)?

ruby-on-rails - Rails 组织单元测试的方式是什么?

ruby-on-rails - 如何测试回形针 URL?

ruby-on-rails - attr_encrypted 不保存到数据库

html - 像在浏览器中一样加载网页,但使用 Ruby

ruby-on-rails - cucumber 和 Rspec