1

我有一个网站显示一个部分,其中包含与帖子相关的堆栈溢出查询。为了获得这些,它使用 SO API 在 SO 中搜索类似于我网站上帖子标题的帖子。

我的问题是,我应该把这个方法放在哪里?它与帖子直接相关,因为它使用帖子的标题来进行 API 调用。但它也与控制器直接相关,因为它返回必须传递给视图的数据。我怀疑我是否想在实际视图中放置一个简单的 API 调用的代码。也许我应该把它放在一个库/助手方法中?

另外,一旦我决定将方法放在哪里,我应该如何测试它而不必每次都调用 API?我正在尝试阅读存根,但我感到困惑。在这样的背景下有一个例子并从那里建立我的知识会很好。

4

2 回答 2

2

您可以将 gem 用于存根 http-requests。我使用了rspec,test/unitminitest

于 2013-06-09T10:39:10.330 回答
1

在我看来,你应该把它放在一个新的模型中(而不是从 ActiveRecord 继承)。然后让控制器调用它来获取数据并将其传递给视图。如果你想测试这个模型——你可以使用“fakeweb”,它是一个可以让你用你自己的结果来模拟 http 请求的 gem。

https://github.com/chrisk/fakeweb

于 2013-06-09T10:28:14.040 回答