我可以在ruby中使用实例方法在ruby中创建另一个对象吗?

时间:2015-10-09 01:43:41

标签: ruby rspec

我有类Schedule的实例方法:

但是,我希望其中一个方法create_recurring创建类Orchestrate.的对象

原因是我希望Orchestrate的所有类都是在实际数据库中创建的东西。该类具有实际创建内容的所有方法。

所以它看起来像这样:

def create_recurring
    orchestrate = OrchestrateIo.new(@bot_client_id, :profiles)
end

然而,在编写我的rspec时,我不知道如何实际测试另一个对象的创建,这让我觉得我一切都错了。

的问题: 1)这是可行/允许的吗? 2)如果是,我将如何测试另一个类的新实例的创建? 3)如果这种方法错误,采取正确的方法是什么?

1 个答案:

答案 0 :(得分:1)

1)当然可行。它是factory pattern的核心。

2)这样的事情? (不是100%肯定你的代码结构,所以......)

it "makes an OrchestrateIo" do
  Orchestrate.create_recurring.should be_an_instance_of(OrchestrateIo)
end

3)没错。它可能适用于你正在做的事情,也可能不适合,但是对于我来说,没有足够的背景来解决问题(或者我不够聪明)。