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



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

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

我们想用RSPEC和FactoryGirl提出一个更好的单元测试环境,在那里我们可以通过创建双精度或模拟来模拟虚拟服务器功能,而不是直接与实际的虚拟服务器交互进行测试。

我想听听大家的建议和意见。

非常感谢帮助。

谢谢马赫什

因此,从我收集的信息来看,您希望使用模拟或测试替身来模仿虚拟服务器的功能。这确实是可能的,问题是是否应该这样做。

您可以使用工厂女孩为每个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实例,其中包含当前虚拟服务器的所有属性。如果将来要更改 verserver 1 的域名,则vserver_1工厂将反映这些更改。

此外,工厂女孩 gem 有很棒的文档,在构建新的测试套件之前,您绝对应该完整阅读它们。祝你好运!