Ruby RSpec 语法怎么变得那么傻了?

linjunhalida · June 29, 2015 · Last by rei replied at July 01, 2015 · 2628 hits

好久没写 rspec,回头一看:

http://rspec.info/documentation/3.1/rspec-core/

# in spec/calculator_spec.rb
RSpec.describe Calculator do
  describe '#add' do
    it 'returns the sum of its arguments' do
      expect(Calculator.new.add(1, 2)).to eq(3)
    end
  end
end

原先用Calculator.new.add(1, 2).should == 3多简洁,为什么改成了这种写法?还不如 Test::Unit 的方法assert_equal呢。

看了一下说明: https://github.com/rspec/rspec-expectations/blob/master/Should.md 基础 API 变化真烦人呀。

典型的滥用 DSL..

多一些尊重别人的思路,少一些牢骚。

很明显阅读起来非常简单

RSpec 3 的语法改动是经过很多争论的,但是不用 should 总体上还是减少了 DSL 导致的复杂度。

读起来更自然。 如果你更期望他读起来更像程序而不是文档,那 RSpec 可能不适合你。assert 可能更合你胃口。

去掉 should 应该算是减少滥用吧

其实我还蛮喜欢 expect 这样的语法的 😄

这种破坏习惯的改变肯定是会有争论的~

和 JavaScript 的 Mocha 语法类似,以后切换成本比较小。

expect 就是个繁琐版的 assert, 降低写代码的效率...

使用 expect 貌似是为了减少脑袋的 context 切换

You need to Sign in before reply, if you don't have an account, please Sign up first.