0
我使用灯具作为测试数据。在我的fixtures加载到db之后,但在任何测试运行之前,我需要做额外的初始化步骤。额外的初始化数据应该可用于所有测试。如何在夹具加载之后但第一次测试开始之前运行一段代码?
test_helper.rb中
class ActiveSupport::TestCase
fixtures :all
end
user_test.rb
require 'test_helper'
class UserTest < ActiveSupport::TestCase
test do
# here I use my extra initialization data
# it takes a lot of effort to create the data
# I'd like this data is available to every test in initial state
end
end
这里是日志。我标记了需要完成初始化的地方。
D, [2017-08-09T07:54:19.910545 #94547] DEBUG -- : (8.8ms) ALTER TABLE "mytable" DISABLE TRIGGER ALL;
D, [2017-08-09T07:54:20.151100 #94547] DEBUG -- : (0.2ms) BEGIN
D, [2017-08-09T07:54:20.153111 #94547] DEBUG -- : Fixture Delete (0.3ms) DELETE FROM "mytable"
D, [2017-08-09T07:54:21.231062 #94547] DEBUG -- : Fixture Insert (0.2ms) INSERT INTO "mytable" ...
D, [2017-08-09T07:54:21.234581 #94547] DEBUG -- : (2.1ms) COMMIT
D, [2017-08-09T07:54:21.239761 #94547] DEBUG -- : (4.1ms) ALTER TABLE "mytable" ENABLE TRIGGER ALL;
# <-- I need my initialization here
D, [2017-08-09T07:54:21.256388 #94547] DEBUG -- : (0.2ms) BEGIN
I, [2017-08-09T07:54:21.256510 #94547] INFO -- : -----------------------------
I, [2017-08-09T07:54:21.256550 #94547] INFO -- : DummyTest: test_my_dummy_test
I, [2017-08-09T07:54:21.256583 #94547] INFO -- : -----------------------------
(dbg) my dummy test: setup
(dbg) my dummy test
(dbg) my dummy test: teardown
D, [2017-08-09T07:54:21.257013 #94547] DEBUG -- : (0.1ms) ROLLBACK
你应该添加一些代码,你目前如何做到这一点。否则很难知道如何帮助你。 – Nobita
@Nobita我已经添加了一些代码以获得更好的解释。 – sitnikovme