gpt4 book ai didi

ruby - double 和 spy 和有什么不一样?

转载 作者:太空宇宙 更新时间:2023-11-03 16:44:00 25 4
gpt4 key购买 nike

我正在阅读 spies我看不出这之间有什么区别:

RSpec.describe "have_received" do
it "passes when the message has been received" do
invitation = spy('invitation', deliver: "ok")
invitation.deliver
expect(invitation).to have_received(:deliver)
end
end

还有这个:

RSpec.describe "have_received" do
it "passes when the message has been received" do
invitation = double('invitation', deliver: "ok")
invitation.deliver
expect(invitation).to have_received(:deliver)
end
end

两个例子都顺利通过。我看不到使用 spy

有任何优势

最佳答案

正如@max 在评论中所说,不同之处在于我可以使用 spy 而无需说 deliver: "ok"。所以,运行这个:

RSpec.describe "have_received" do
it "passes when the message has been received" do
invitation = spy('invitation')
invitation.deliver
expect(invitation).to have_received(:deliver)
end
end

RSpec.describe "have_received" do
it "passes when the message has been received" do
invitation = double('invitation')
invitation.deliver
expect(invitation).to have_received(:deliver)
end
end

第一个示例会通过,但第二个不会。

enter image description here

现在我明白这意味着什么了......

“您可以使用任何测试替身(或部分替身)作为 spy ,但必须将替身设置为监视您关心的消息。 spy ​​会自动监视所有消息,或者您可以允许消息监视它。”

关于ruby - double 和 spy 和有什么不一样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38405235/

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