测试 Writing Sensible Tests for Happiness

fredwu · 2013年08月26日 · 最后由 song940 回复于 2013年09月10日 · 3266 次阅读
本帖已被设为精华帖!

关于测试的。

请翻墙批阅:http://fredwu.me/post/59395419899/writing-sensible-tests-for-happiness

欢迎吐槽,拍砖。。。皮嫩,轻点。。。 :P

共收到 13 条回复

沙!发!去看了

+1 Test as Little as Possible to Reach a Given Level of Confidence

言简意赅👍

居然不要翻墙..

orz... 中文版何时出

Read it later ... 放地铁上看了。。

  • 1 路上好好拜读

已收藏.

好文!讲如何使用 Test framework 和 Test tool 的文章很多,但是讲如何写好 Test 的文章很少,楼主的文章很棒,感谢分享!

好好学习,天天向上!

Good read 👍

恕我愚钝,有一些地方没看懂,比如下面的 let(:user) { traveller }, 是把user.idand_return(user)这两个user变成traveller? 那这个测试的执行顺序是啥样?

我第一反应是 这个traveller是一个User实例,那这句的作用是把stakeholder.user变成了traveller? 那TA和before中的stakeholder.stub(:user).and_return(user)是算把后者覆盖了?

有点乱。。。求指点

describe ApprovalStakeholder do
  let(:stakeholder) do
    create(:approval_stakeholder,
      :approval => approval,
      :user_id  => user.id
    )
  end

  subject { approval }

  before do
    stakeholder.stub(:user).and_return(user)
    approval.stub(:stakeholders_as).and_return([stakeholder])
  end

  describe "#traveller" do
    let(:user) { traveller }

    its(:traveller) { should == traveller }
  end
end

let 都是 lazy-evaluated 的,所以当程序执行到 user 的时候 let(:user) 才会被赋值。

不错的文章 , 另外: Tumblr 目前好像还没有被墙吧~至少我这里访问良好~

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