ruby mock redismock

本文深入探讨了Ruby编程中stub和mock的概念及其应用,详细解释了两者之间的区别,并通过实例展示了如何在代码中使用它们来简化单元测试过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

stub 与mock之间的区别是,给接受者fake一个方法,并阻断原方法,参数可以是字符串、symbol,后者则是创建一个对象。https://ruby-china.org/topics/10977。后者创建一个对象
不仅仅方法,但基本可以直接用mock解决https://github.com/rspec/rspec-mocks#mock-objects-and-test-stubs

gem install rspec
gem install rspec-mocks

创建一个实例
book = instance_double("Book", :pages => 250)

创建这个实例的方法3种方式
allow(book).to receive(:title) { "The RSpec Book" }
allow(book).to receive(:title).and_return("The RSpec Book")
allow(book).to receive_messages(
:title => "The RSpec Book",
:subtitle => "Behaviour-Driven Development with RSpec, Cucumber, and Friends")
创建类方法
一种是使用stub,一种是使用mock的 class_double 与instance_double的区别
(1)BidFeedBack.stub(:test1).and_return("999999999")
(2)bid = class_double("BidFeedBack")
allow(BidFeedBack).to receive(:test1).and_return("2222222222")

require 'mock_redis'
mockredis = MockRedis.new
mockredis.hset("youku:creatives:55","id","55")//给mock_redis里面存储值
Creative.redis = mockredis 指向给某个对象,也可以直接


https://relishapp.com/rspec/rspec-mocks/v/3-4/docs/basics/test-doubles
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值