gpt4 book ai didi

ruby-on-rails-3 - 如何使用 RSpec 在 after_save 回调中测试类初始化?

转载 作者:行者123 更新时间:2023-11-28 20:56:58 26 4
gpt4 key购买 nike

我有以下方法:

class Topic
def create_or_rename_folder
unless self.destroyed?
bucket = CreateTopicFolder.new(bucket_name)
bucket.create_or_rename_folder(permalink.split("/").last)
end
end
...

调用方式如下:after_save :create_or_rename_folder, :if => :production_env?

我想测试在创建新的 Topic 时是否会创建一个新的 CreateTopicFolder 实例,并且如果 主题 正在被销毁,CreateTopicFolder 的新实例正在创建。

那个类看起来像:

class CreateTopicFolder

def initialize(bucket_name)
s3 = AutoVideoAssociate
s3.connect
@bucket = s3.find_bucket(bucket_name)
end
...

测试这个的正确方法是什么?

谢谢!

最佳答案

context "When creating a Topic" do
it "creates a CreateTopicFolder" do
create_topic_folder = mock(CreateTopicFolder)
CreateTopicFolder.stub(:new) { create_topic_folder }
create_topic_folder.
should_receive(:create_or_rename_folder).
with("Sample Bucket Name")
topic = Topic.new
topic.bucket_name = "Sample Bucket Name"
topic.save!
end
end

context "When destroying a Topic" do
it "does not create a CreateTopicFolder" do
CreateTopicFolder.should_not_receive(:new)
topic = mock_model(Topic)
topic.destroy
end
end

关于ruby-on-rails-3 - 如何使用 RSpec 在 after_save 回调中测试类初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12464274/

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