gpt4 book ai didi

ruby - 在没有 Rails、ActiveRecord 或任何带 RSpec 的数据库的情况下使用 FactoryGirl

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

我想知道是否有人知道是否可以在没有任何上述先决条件的情况下使用 FactoryGirl。

我想在为移动和 Web 甚至可能的 API 驱动 UI 自动化测试时使用它来生成即时测试数据。

我知道我可以创建一些自定义帮助程序类/方法并使用 getter 和 setter 等,但我认为使用这个很棒的小 gem 会很好。

我进行了相当广泛的搜索,并尝试建立一个基本的 RSpec 项目(我也尝试过 Cucumber),但无济于事。看来我仍然需要使用相关登录实例化类才能使用它。

FactoryGirl.define do
factory :user do
firstname { Faker::Name.first_name }
lastname { Faker::Name.last_name }
age { 1 + rand(100) }
end
end

然后如果我尝试在 RSpec 文件中调用它...

describe...
it...
user = build_stubbed(:user)
end
end

我也阅读了文档并尝试了所有其他变体,我只是不断...

 Failure/Error: user = build_stubbed(:user)
NameError:
uninitialized constant User

这表明我需要一个包含所有逻辑的名为 User 的类。

最佳答案

您的猜测是正确的——您仍然需要自己编写User 类。 factory_girl 可以很好地处理非 ActiveRecord 类,但它不会为您编写它们。

默认情况下,factory_girl 通过调用不带参数的 new 构造实例,因此您的类不应该 def initializeinitialize 必须不带参数,就像 ActiveRecord 模型一样。所以最简单的做法是像这样编写 User:

class User
attr_accessor :firstname, :lastname, :age
end

如果您决定需要一个需要参数的initializeyou can use factory_girl's initialize_with to tell it how to instantiate your class .

关于ruby - 在没有 Rails、ActiveRecord 或任何带 RSpec 的数据库的情况下使用 FactoryGirl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24343730/

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