【问题标题】:Is it possible to use gem faker from my yml file?是否可以从我的 yml 文件中使用 gem faker?
【发布时间】:2021-04-27 18:04:45
【问题描述】:

我最大的愿望是在 yml 文件中使用 gem faker。我知道这种方式是错误的,但是有可能吗?

查看我的代码:

-----yml 文件 -----

:usuarios:
  :ncpf:             Faker::Number.number
  :birth             Faker::Date.birthday

---我的页面(站点棱镜)-----

def new_user
    cpf.set(DADOS[:users][:ncpf])
    dt_birth.set(DADOS[:users][:birth])
end

【问题讨论】:

    标签: ruby automated-tests capybara


    【解决方案1】:

    开箱即用,这对于纯 YAML 是不可能的。但是,当您在解析之前通过 ERB 运行 YAML 文件时,您可以这样做。

    将您的 YAML 更改为

    :users:
      :ncpf:   <%= Faker::Number.number %>
      :birth:  <%= Faker::Date.birthday %>
    

    然后像这样读取文件

    require 'erb'
    require 'json'
    
    file = File.read('path/filename.yml')
    yaml = ERB.new(file).result
    
    DADOS = YAML.load(yaml)
    

    顺便说一句,这就是 Rails 在内部对配置文件所做的事情。因此,当您使用 Rails 时,您可以使用这个简化版本来加载该文件

    DADOS = ActiveSupport::ConfigurationFile.parse('path/filename.yml')
    

    【讨论】:

    • spickermann,谢谢!它仍然没有工作,我的代码有什么问题? .. 请 file = File.read(File.dirname(FILE) + "/massa/tb.yml") yaml = ERB.new(file).result DADOS = YAML.load(File. open(File.join(File.dirname(FILE) + "/massa/tb.yml"))) 我的结构:AUT_FRONT ---Features\support\massa\tb.yml
    • 您以DADOS = 开头的行看起来与我的答案中的一些不同。您的版本基本上不使用ERB 部分,因此无法正常工作。
    • 太可惜了!!..谢谢
    猜你喜欢
    • 1970-01-01
    • 2022-10-20
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2022-12-17
    • 1970-01-01
    • 1970-01-01
    • 2015-03-25
    相关资源
    最近更新 更多