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

linjunhalida · 2015年06月29日 · 最后由 rei 回复于 2015年07月01日 · 2624 次阅读

好久没写 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呢。

典型的滥用 DSL..

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

很明显阅读起来非常简单

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

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

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

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

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

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

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

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

需要 登录 后方可回复, 如果你还没有账号请 注册新账号