使用Rspec和Factory Girl创建单元测试套件

时间:2016-02-17 22:59:48

标签: ruby unit-testing rspec sinatra factory-bot

我有一个要求,我们应该为服务器的工厂创建,我们称之为Vservers。它基本上具有完全限定域名(fqdn)等属性,例如:dev-vserver.storage.com,ID等。

我们建立了与Vserver的连接,并以json格式检索有关我们执行的不同操作的信息,例如配置存储,调整卷大小,删除卷等。

我们想用RSPEC和FactoryGirl建立一个更好的单元测试环境,我们可以通过创建双打或模拟来模拟Vserver功能,而不是直接与实际的Vserver交互进行测试。

我想听听你们的建议和意见。

非常感谢帮助。

谢谢, 马赫什

1 个答案:

答案 0 :(得分:1)

因此,根据我收集的内容,您希望使用模拟或测试双打来模拟Vserver的功能。这确实是可能的,问题是应该它可以完成。

你可以使用工厂女孩为你的每个Vserver类创建工厂,但是这些工厂只返回你给他们的任何数据,他们没有任何真正的数据,因为他们只有你的任何东西在你的测试或工厂中分配它们。

我建议您在facotries中实际建立与Vserver的每个实例的连接,并撤回所需的所有属性。例如,你可以像这样创建一个工厂:

factory :vserver_1 do
   id { connect_to_vserver_1_and_get_id }
   domain_name { connect_to_vserver_1_get_domain_name }
end

这将实例化vserver_1的新实例,其中包含当前vserver的所有属性。如果您以后要更改“服务商1”的域名,则vserver_1工厂会反映这些更改。

此外,工厂女孩宝石有很棒docs,在构建新的测试套件之前,你一定要完整阅读它们。祝好运!