Lee*_*Lee 32 ruby rspec ruby-on-rails mocking
我注意到很多人更喜欢Mocha而不是RSpec内置的模拟框架.有人可以解释摩卡的优势,或任何替代方案,而不是RSpec内置的模拟框架?
Jer*_*ert 40
自从2009年提出这个问题以来,Ruby模拟框架已经发生了很大变化.所以这里有一个2013年的比较:
期望
expect(user).to receive(:say_hello)user.expects(:say_hello).once捣乱一个物体
user = double(name: 'John Doe')user = stub(name: 'John Doe')咬住任何东西
User.any_instance.stub(:name).and_return('John Doe')User.any_instance.stubs(:name).returns('John Doe')它们提供相同的设施,两者都可以使用或不使用Rspec.
所以我会说选择一个是另一个是个人品味(他们的味道非常相似).
Pet*_*son 31
我真正喜欢的一个特定功能是能够存根所有类的实例.很多时候我使用RSpec模拟执行以下操作:
stub_car = mock(Car)
stub_car.stub!(:speed).and_return(100)
Car.stub!(:new).and_return(stub_car)
Run Code Online (Sandbox Code Playgroud)
与摩卡成为:
Car.any_instance.stubs(:speed).returns(100)
Run Code Online (Sandbox Code Playgroud)
我发现Mocha版本更清晰,更明确.
| 归档时间: |
|
| 查看次数: |
7868 次 |
| 最近记录: |