使用RSpec的几个项目后,我给MINITEST /单元一展身手。 我喜欢它,到目前为止,但我想念使用描述/上下文块组我的测试/规格以逻辑方式。
我知道MINITEST /规范提供了这一功能,但我喜欢MINITEST /单元的感觉有点接近准系统红宝石。
是否有提供描述任何宝石/ MINITEST为/单位方面的支持? 或者,我应该只是在MINITEST /单位我长的,无组织的测试文件住在哪里?
使用RSpec的几个项目后,我给MINITEST /单元一展身手。 我喜欢它,到目前为止,但我想念使用描述/上下文块组我的测试/规格以逻辑方式。
我知道MINITEST /规范提供了这一功能,但我喜欢MINITEST /单元的感觉有点接近准系统红宝石。
是否有提供描述任何宝石/ MINITEST为/单位方面的支持? 或者,我应该只是在MINITEST /单位我长的,无组织的测试文件住在哪里?
我知道几个人从RSpec的来MINITEST同样的问题挣扎。 他们喜欢用描述/上下文块,并希望继续在MINITEST的能力窝。 有几种解决方案:
context
块。 但是你可以很容易的使用describe
在其位,一切都会按你所期望的。 这里是我的测试文件是如何组织的一个例子:
test/
models/
user/
authentication_test.rb
email_test.rb
reservation_test.rb
user_test.rb
username_test.rb
我用这个结构我是否使用规范DSL或xUnit的风格。 当使用规范DSL我指定我在我的描述块正在测试,如下所示:
require "minitest_helper"
describe User, :authentications do
before do
# ...
您也可以抛出多个类到一个测试文件:
module PizzaTest
class Isolation < ActiveSupport::TestCase
test "is awesome by default" do
assert Pizza.new.awesome?
end
end
class Integration < ActiveSupport::TestCase
fixtures :all
test "is awesome too" do
pizzas('one-with-everything').awesome?
end
end
end
甚至巢测试类:
class PizzaTest < ActiveSupport::TestCase
test "is awesome by default" do
assert Pizza.new.awesome?
end
class Integration < ActiveSupport::TestCase
fixtures :all
test "is awesome too" do
assert pizzas('one-with-everything').awesome?
end
end
end
我喜欢这种方式(只有一点点),但我认为它更容易跟踪:
class ConventionalNameTest < ActiveSupport::TestCase
class ContextTest < ConventionalNameTest
# so much stuff...
end
class AnotherContextTest < ConventionalNameTest
# and some more...
end