如何访问在 rspec 中的方法运行期间创建的对象?

How do I access objects created during the runtime of a method in rspec?

我有一个 class 和 Klass::save 方法。此方法将创建一个新的 Klass 实例,然后根据需要调用 inst.createinst.update

我想写一个这样的 rspec 测试:

expect(instance_created_within_class_method).to receive(:create)

我可以访问在我正在测试的方法 运行 期间创建的对象吗?

expect_any_instance_of(Class).to receive(:create) 可能就是您要找的。

要通过该方法调用,您可以在其末尾添加 .and_call_original

查看有关模拟和期望的 RSpec 文档:https://relishapp.com/rspec/rspec-mocks/v/2-14/docs/message-expectations/expect-a-message-on-any-instance-of-a-class