1

私は次の方法を持っています:

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、およびが破棄されている場合は新しいインスタンスが作成されないことをテストしたいと思います。TopicCreateTopicFolder

そのクラスは次のようになります。

class CreateTopicFolder

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

これをテストする正しい方法は何ですか?

ありがとう!

4

1 に答える 1

0
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
于 2012-09-18T03:24:08.277 に答える