doj*_*sto 49 ruby ruby-on-rails minitest
在为几个项目使用RSpec之后,我给了minitest/unit.到目前为止我喜欢它,但我错过了使用describe/context块以逻辑方式对我的测试/规范进行分组.
我知道minitest/spec提供了这个功能,但我喜欢minitest/unit感觉更接近于准系统Ruby.
是否有任何宝石为minitest/unit提供描述/上下文支持?或者,我应该只使用minitest/unit中长而无组织的测试文件?
blo*_*age 47
我知道来自RSpec的几个人最小的努力解决同样的问题.他们喜欢使用describe/context块嵌套的能力,并希望继续使用minitest.有几种解决方案:
context积木.但是你可以轻松地使用describe它,一切都按照你的预期运作.以下是我的测试文件的组织方式示例:
test/
models/
user/
authentication_test.rb
email_test.rb
reservation_test.rb
user_test.rb
username_test.rb
Run Code Online (Sandbox Code Playgroud)
无论我使用spec DSL还是xUnit样式,我都使用这种结构.当使用规范DSL时,我在我的描述块中指定我正在测试的内容,如下所示:
require "minitest_helper"
describe User, :authentications do
before do
# ...
Run Code Online (Sandbox Code Playgroud)
Woj*_*ski 17
您还可以将多个类放入一个测试文件中:
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
Run Code Online (Sandbox Code Playgroud)
甚至嵌套测试类:
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
Run Code Online (Sandbox Code Playgroud)
kan*_*kyu 13
我更喜欢这种方式(只是一点点)但我认为更容易遵循:
class ConventionalNameTest < ActiveSupport::TestCase
class ContextTest < ConventionalNameTest
# so much stuff...
end
class AnotherContextTest < ConventionalNameTest
# and some more...
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10000 次 |
| 最近记录: |