gpt4 book ai didi

ruby-on-rails - 规范。测试 block 调用的参数

转载 作者:数据小太阳 更新时间:2023-10-29 08:46:49 26 4
gpt4 key购买 nike

我遇到了在我的 Rails 项目中测试 block 调用参数的问题。

我大概有这段代码(简化):

DropboxApi.read_path do |batch|
# some actions are here
end

其中 batch 是数据的散列。

我有一个 rspec 规范,它测试 DropboxApi 方法,我需要在其中测试“批处理”的某些字段。我想得到这样的东西:

it { expect(batch).to respond_to(:data) }
it { expect(batch.data.count).to eq(6) }

我没有找到一些方法来做到这一点。产量匹配器在这种情况下没有帮助,因为它们只检查 block 调用而不是它的参数。

有人可以帮助实现我想要的吗?我想我可能应该改变我的规范方法。但我还不知道怎么做。

最佳答案

这实际上非常简单。

it "responds to data" do
DropboxApi.read_path do |batch|
expect(batch).to respond_to(:data)
end
end

it "has a count of 6" do
DropboxApi.read_path do |batch|
expect(batch.data.count).to eq(6)
end
end

如果您真的希望它看起来更简洁,就像您的示例一样,您可以执行以下操作。

let(:batch) {
DropboxApi.read_path do |batch|
return batch
end
}

it { expect(batch).to respond_to(:data) }
it { expect(batch.data.count).to eq(6) }

关于ruby-on-rails - 规范。测试 block 调用的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25402128/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com