0

在我们的应用程序中,我们为一些感兴趣的领域模型编写了 after_create/update/delete 回调。在这些模型中,我们创建了一个新的审计模型,它将更改模型的必要数据 xml 化,并将其存储在审计表中。例如,Consultant 模型的 after_create 回调如下所示:

def after_create
xml = #private xmlize() is called which returns the data of new Consultant object
audit = Audit.new :data=>xml.to_s
audit.save
end

现在,我想模拟审计对象,看看是否使用 RSpec 调用了它的保存方法。或者更好的是,如果有办法通过 RSpec 正则表达式 xml 的内容,我会很高兴学习如何在 Rails 环境中通过 Ruby 来做到这一点。

4

1 回答 1

0

您不能自然地模拟 Audit 对象,因为它是在方法中构造的。

您可能想要做的是创建和注入(somwhere ...)一个 AuditFactory,并使用它来创建 Audit 对象。

然后工厂和审计都可以被模拟,期望模拟工厂创建模拟审计,并调用审计的保存方法。

对工厂的期望也可以设置为期望正确的 xml。

于 2010-12-31T13:17:05.130 回答