我们有一个Rails应用程序和一个带有单独代码库的Sinatra API。他们需要与同一个数据库一起工作。
我们可以使用API创建记录,然后使用Rails应用程序显示该记录的页面。使用API创建记录时,还需要同时创建许多其他记录。这一切都在Rails应用程序上运行良好。
以下是问题:在API创建记录时,测试的最佳方法是什么,在Rails应用程序上创建所有其他记录并正确呈现页面?
我正在Rails应用程序中为此编写测试。由于API与Rails应用程序是分开的,我可以创建一个模拟。但是模拟需要做API所能做的所有事情,所以它实际上不是模拟。
是否可以(或实际)在Rails应用程序中包含包含创建记录的调用的API文件?
或者有更好的方法来测试吗?
答案 0 :(得分:2)
嗯,你有两个网络应用程序。也就是说,两个应用程序在Net上公开(或多或少)公共接口并响应HTTP调用。
为什么不使用HTTP客户端调用所有两个服务器并执行完整测试(如果您愿意,可以使用“工作流程测试”)?
您可以使用任何现有的Web测试工具,或使用任何语言编写测试脚本。
答案 1 :(得分:0)
不,不可能在Rails应用程序中包含API中的文件。
它们托管在不同的服务器上。即使我让它在我的本地机器上运行,它也无法在生产中使用。
编辑:实际上,这不是真的。如果只需要共享文件进行测试,那么它只能在本地机器上运行(除非有某种CI系统)。所以生产环境无关紧要。只有测试(CI)环境很重要。