【问题标题】:ChefSpec - Stub method inside resourceChefSpec - 资源中的 Stub 方法
【发布时间】:2017-04-04 01:03:51
【问题描述】:

有没有办法用测试值存根方法调用?例如,我希望 get_folder_name 在 ChefSpec 测试期间返回“test”

directory 'Log_Folder' do
    def get_folder_name
      'c:\temp\folder'
    end

    action :create
    path get_folder_name
end

试过了,但它并没有取代价值。

before do
  allow_any_instance_of(Chef::Resource).to receive(:get_folder_name).and_return('test')
end

【问题讨论】:

    标签: ruby rspec chef-infra chefspec


    【解决方案1】:

    所以问题可能是因为该方法是这样内联声明的,它会不断覆盖存根。你可以试试allow_any_instance_of(Chef::Resource::Directory) 或类似的,但我可能会将这个逻辑移到一个自定义资源中,在那里它可以更自然地存根。

    【讨论】:

    • 添加“::Directory”不起作用。如果我将方法移动到配方而不是资源怎么办?我尝试使用 allow_any_instance_of(Chef::Recipe) 但这也没有用。
    猜你喜欢
    • 2019-06-04
    • 1970-01-01
    • 2019-01-11
    • 1970-01-01
    • 1970-01-01
    • 2018-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多