ruby-on-rails - Ruby Rspec should_not_receive 不工作
问题描述
对于下面的代码片段:
@by_hidden.should_not_receive(:by_limit).with(100).and_return(@by_limit)
我面临错误
@by_hidden.should_not_receive(:by_limit).with(100).and_return(@by_limit)
(Double Object).by_limit(100)
expected: 1 time with arguments: (100)
received: 0 times with arguments: (100)
任何有关这方面的信息将不胜感激。
解决方案
像这样写:
expect(@by_hidden).not_to receive(:by_limit).with(100)
或者也许(取决于您的用例)甚至只是:
expect(@by_hidden).not_to receive(:by_limit)
- 如果您希望不调用该方法,那么存根返回值是没有意义的。
- 几年来,语法
expect(...).to
一直优于should
/ 。should_not
对于某些类型的对象,后一种方法可能会出现问题,因此最好避免。
推荐阅读
- javascript - 在 FabricJS 中控制缩小视口
- spring-boot - 使用 PCF Tanzu Gemfire 服务 Springboot 微服务使用 Gemfire 缓存时面临的问题
- c# - 天蓝色管道中的黑名单发布事件 gacutil
- python - Pandas - 展平不规则的嵌套 JSON
- outlook - Office 365 群组日历:使用类别邀请群组
- html - 有两列与边框并排
- java - 使用 MediaGroup 发送多个图像
- java - Liquibase 唯一约束不适用于名为“名称”的列,但适用于任何其他列
- typescript - 打字稿枚举值如何比较?
- react-native - react-native 多选更改选择文本颜色