gpt4 book ai didi

ruby-on-rails - 在 cucumber 运行测试之前运行一次代码

转载 作者:行者123 更新时间:2023-11-28 20:56:32 25 4
gpt4 key购买 nike

我正在为我的 Rails 应用程序测试 Facebook 集成。我想使用 Koala 的 API 创建一个测试用户,然后运行我的集成测试。

我写了这个方法(在 features/support 的 koala.rb 中):

def facebook_user
test_user ||= Koala::Facebook::TestUsers.new(app_id: ENV['FACEBOOK_APP_ID'], secret: ENV['FACEBOOK_SECRET'])
@facebook_user ||= test_user.create(true, 'email')
end

我希望它只运行一次。现在,每次我在测试中的任何地方调用 facebook_user 方法时,它都会再次运行代码,而不是保留之前检索到的值。

如何运行此代码一次并保留所有场景的值?

谢谢

最佳答案

test_user 是一个局部变量,从不缓存。使用 ||= 什么都不做。

您需要将结果缓存在另一个实例变量中,@test_user ||= ...,或者执行以下操作:

def facebook_user
@facebook_user ||= begin
test_user = Koala::Facebook::TestUsers.new(app_id: ENV['FACEBOOK_APP_ID'], secret: ENV['FACEBOOK_SECRET'])
test_user.create(true, 'email')
end
end

关于ruby-on-rails - 在 cucumber 运行测试之前运行一次代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15093381/

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