gpt4 book ai didi

ruby - 工厂女孩 - 目的是什么?

转载 作者:数据小太阳 更新时间:2023-10-29 06:20:14 24 4
gpt4 key购买 nike

当我可以使用 before(:each) block 时,Factory Girl 在 rspec 测试中的目的是什么?感觉 Factory Girl 和 before(:each) 之间的唯一区别是工厂在测试之外准备对象创建。这样对吗?

最佳答案

Factory Girl 这样的 gem 和 Sham允许您为有效和可重用的对象创建模板。它们是为了响应必须将固定记录加载到数据库中的固定装置而创建的。当您实例化对象时,它们允许更多的自定义,它们旨在确保您有一个有效的对象可以使用。它们可以在您的测试中的任何地方以及您的测试前后 Hook 中使用。

before(:each)、before(:all)、after(:each) 和 after(:all) 都旨在为您提供一个进行设置和拆卸的场所,这些场所将在测试组中共享。例如,如果您要为每个测试创建一个新的有效用户,那么您将希望在 before(:each) Hook 中执行此操作。如果您要从文件系统中清除一些文件,您需要在 before Hook 中执行此操作。如果你的测试都创建了一个 tmp 文件,而你想在测试后删除它,你将在 after(:each) 或 after(:all) Hook 中执行此操作。

这两个概念的不同之处在于,工厂的目的不是围绕您的测试创建 Hook ,它们的目的是创建有效的 Ruby 对象和记录,以便您可以保持对象创建的灵 active 和 DRY。 Before 和 After Hook 针对在示例组中共享的设置和拆卸任务,以便您可以保持设置和拆卸代码的 DRY。

关于ruby - 工厂女孩 - 目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5183975/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com