如何在 Rails 应用程序中测试简单的 Ruby class?

How to test simple Ruby class in Rails application?

我有一个 Rails 4 应用程序,我正在向其中添加一个简单的 class 作为我正在调用的外部 API 的包装器。 class 不继承任何东西,看起来像:

class MyFacade
  def self.foo
    WebService::foo
  end

  def self.bar
    WebService::bar
  end
end

我已将文件放入自动加载的 app/classes 中。这工作正常。问题是,您如何以及在何处使用仅 class 方法为这样的 class 编写测试?

我会创建文件 test/models/my_facade_test.rb 并在那里进行测试。这仍然是您域的一部分,即使它不是从 ActiveRecord 继承的。并非每个领域模型都需要由数据库支持 table。

与您测试 ActiveRecord 模型的方式完全相同。

您的测试将类似于:

expect(MyFacade.foo).to be_kind_of(WebService::foo)

等等