有没有一种在Rails应用程序和API之间共享代码的好方法?

时间:2012-11-30 19:14:32

标签: ruby-on-rails ruby tdd sinatra bdd

我们有一个Rails应用程序和一个带有单独代码库的Sinatra API。他们需要与同一个数据库一起工作。

我们可以使用API​​创建记录,然后使用Rails应用程序显示该记录的页面。使用API​​创建记录时,还需要同时创建许多其他记录。这一切都在Rails应用程序上运行良好。

以下是问题:在API创建记录时,测试的最佳方法是什么,在Rails应用程序上创建所有其他记录并正确呈现页面?

我正在Rails应用程序中为此编写测试。由于API与Rails应用程序是分开的,我可以创建一个模拟。但是模拟需要做API所能做的所有事情,所以它实际上不是模拟。

是否可以(或实际)在Rails应用程序中包含包含创建记录的调用的API文件?

或者有更好的方法来测试吗?

2 个答案:

答案 0 :(得分:2)

嗯,你有两个网络应用程序。也就是说,两个应用程序在Net上公开(或多或少)公共接口并响应HTTP调用。

为什么不使用HTTP客户端调用所有两个服务器并执行完整测试(如果您愿意,可以使用“工作流程测试”)?

您可以使用任何现有的Web测试工具,或使用任何语言编写测试脚本。

答案 1 :(得分:0)

不,不可能在Rails应用程序中包含API中的文件。

它们托管在不同的服务器上。即使我让它在我的本地机器上运行,它也无法在生产中使用。

编辑:实际上,这不是真的。如果只需要共享文件进行测试,那么它只能在本地机器上运行(除非有某种CI系统)。所以生产环境无关紧要。只有测试(CI)环境很重要。