Unit::Test 与 Rspec 之间的区别
Difference between Unit::Test versus Rspec
我对 Test::Unit
和 Rspec
感兴趣。
有人可以向我解释一下两者之间的主要区别是什么 - 就它们运作的原则而言。
Test::Unit 更类似于像 JUnit 这样的经典 TDD 工具。测试写成 类(因为在 Java / C++ 中就是这样写的)。
Test::Unit 更适合那些习惯使用经典测试工具的人。
Test::Unit
已完全替换为 Minitest。
require_relative "simple_number"
require "test/unit"
class TestSimpleNumber < Test::Unit::TestCase
def test_add
assert_equal(4, SimpleNumber.new(2).add(2) )
end
def test_multiply
assert_equal(6, SimpleNumber.new(2).multiply(3) )
end
end
RSpec 是一种领域特定语言,它利用 ruby 语言的灵活性来创建“更具可读性”的测试。
RSpec 的早期版本有点过头了,猴子修补了核心 Ruby 类.
RSpec 更倾向于行为驱动开发的哲学,在行为驱动开发中,您描述应用程序中组件的行为,而 TDD 则将应用程序分割成最小的组件。
require "spec_helper"
require "lib/simple_number"
describe SimpleNumber do
describe "#add" do
it "adds a value to the sum" do
expect(SimpleNumber.new(2).add(2)).to eq(4)
end
end
describe "#multiply" do
it "multiplies with the value" do
expect(SimpleNumber.new(2).multiply(3)).to eq(6)
end
end
end
哪个更好?
见仁见智。
Minitest 最近有所复苏,因为它被认为更快更简单。然而,测试可能非常简洁,真正减慢套件速度的是集成测试和数据库 IO。
编写良好的 RSpec 测试套件(或规范套件)更具可读性和易于浏览。当规范失败时,很容易将其与应用程序中实际出错的地方联系起来。当然也有很多套房正好相反。
Minitest 非常灵活,甚至可以与规范样式语法一起使用。它开箱即用,非常稀疏,不包括丰富的断言库和像 RSpec 这样的模拟库。虽然您可以插入任何东西,但您仍然需要让所有移动部件协同工作。
RSpec 有更好的测试运行器和更好的文档。
我对 Test::Unit
和 Rspec
感兴趣。
有人可以向我解释一下两者之间的主要区别是什么 - 就它们运作的原则而言。
Test::Unit 更类似于像 JUnit 这样的经典 TDD 工具。测试写成 类(因为在 Java / C++ 中就是这样写的)。
Test::Unit 更适合那些习惯使用经典测试工具的人。
Test::Unit
已完全替换为 Minitest。
require_relative "simple_number"
require "test/unit"
class TestSimpleNumber < Test::Unit::TestCase
def test_add
assert_equal(4, SimpleNumber.new(2).add(2) )
end
def test_multiply
assert_equal(6, SimpleNumber.new(2).multiply(3) )
end
end
RSpec 是一种领域特定语言,它利用 ruby 语言的灵活性来创建“更具可读性”的测试。
RSpec 的早期版本有点过头了,猴子修补了核心 Ruby 类.
RSpec 更倾向于行为驱动开发的哲学,在行为驱动开发中,您描述应用程序中组件的行为,而 TDD 则将应用程序分割成最小的组件。
require "spec_helper"
require "lib/simple_number"
describe SimpleNumber do
describe "#add" do
it "adds a value to the sum" do
expect(SimpleNumber.new(2).add(2)).to eq(4)
end
end
describe "#multiply" do
it "multiplies with the value" do
expect(SimpleNumber.new(2).multiply(3)).to eq(6)
end
end
end
哪个更好?
见仁见智。
Minitest 最近有所复苏,因为它被认为更快更简单。然而,测试可能非常简洁,真正减慢套件速度的是集成测试和数据库 IO。
编写良好的 RSpec 测试套件(或规范套件)更具可读性和易于浏览。当规范失败时,很容易将其与应用程序中实际出错的地方联系起来。当然也有很多套房正好相反。
Minitest 非常灵活,甚至可以与规范样式语法一起使用。它开箱即用,非常稀疏,不包括丰富的断言库和像 RSpec 这样的模拟库。虽然您可以插入任何东西,但您仍然需要让所有移动部件协同工作。
RSpec 有更好的测试运行器和更好的文档。