在RSpec中,it块和指定块之间有什么区别?

subject { MovieList.add_new(10) }

specify { subject.should have(10).items }
it { subject.track_number.should == 10}

他们似乎做同样的工作.只是确认一下.

推荐答案

方法the same种;它们的提供是为了根据您的测试内容,使以英语阅读的规格更准确.考虑这两个:

describe Array do
  describe "with 3 items" do
    before { @arr = [1, 2, 3] }

    specify { @arr.should_not be_empty }
    specify { @arr.count.should eq(3) }
  end
end

describe Array do
  describe "with 3 items" do
    subject { [1, 2, 3] }

    it { should_not be_empty }
    its(:count) { should eq(3) }
  end
end

Ruby-on-rails相关问答推荐

安装特定版本的Ruby时出现问题(OpenSSL问题)

搜查升级到 4.0.0 和 ActionText::RichText

active_storage.resolve_model_to_route的不同值代表什么意思?

删除 aws s3 (rails7) 上的日志(log)文件

`ActionController::API` 祖先类在加载后不会更新

从 rails 5 升级到 6 和 zeitwerk

ActiveRecord 错误地转义 JSON 字符串

在 Rails 中进行 Http 基本身份验证

骨干model.destroy()即使工作正常也会调用错误回调函数?

Ruby on Rails 取消首字母大写

HABTM 关系 - 如何根据关联模型的属性找到记录

使用回形针调整图像大小

Rails,获取模型中的资源路径

Rails 3 中的猴子补丁

带有 master.key 的 Rails 5.2 - Heroku 部署

Redis 引发需要 NOAUTH 身份验证错误,但没有设置密码

我可以在 Ubuntu 上使用 apt-get 安装 gems 吗?

如何在 VS Code 中自动格式化 Ruby 或 .erb 文件?

从任何编码强制字符串为 UTF-8

设置EDITOR或BUNDLER_EDITOR环境变量