mocking - 如何在 Rspec-Puppet 中模拟自定义类型

标签 mocking tdd puppet

由于实现了this的答案,我能够使用rspec-puppet测试自定义类型问题。

但是,我想避免通过模拟cystom类型在每个puppet模块中创建指向自定义文件夹的符号链接(symbolic link)。

问题是如何在 Rspec-Puppet 中模拟自定义 Puppet 类型。

我找到了一个example关于自定义 Puppet Function 的模拟,但我正在寻找一个模拟 Puppet Custom Types 的示例。

puppet 代码

class vim::ubuntu::config {
  custom_multiple_files { 'line_numbers':
    ensure     => 'present',
    parent_dir => '/home',
    file_name  => '.vimrc',
    line       => 'set number';
  }
}

Rspec-puppet 代码

require 'spec_helper'

describe "vim::ubuntu::config" do
  ?
end

最佳答案

寻找模拟示例的一个好地方是 Puppet 自己的集合 unit tests .

我不确定是否有需要考虑的特殊性,但在 Puppet 的规范测试中,模拟的工作原理如下:

let(:type) { Puppet::Type.type(:custom_file_line) }
it "should do whatever"
  type.stubs(:retrieve).returns <value>
  # perhaps also needed
  Puppet::Type.stubs(:type).with(:custom_file_line).returns(type)

据我了解,这是moccha风格 mock 。在普通的 rspec 中,模拟/ stub 有点多 involved ,这对于 rspec-puppet 可能是必需的。

关于mocking - 如何在 Rspec-Puppet 中模拟自定义类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23060142/

相关文章:

java - 用于 JUnit 测试的模拟对象

javascript - 断言一个值恰好等于 undefined

puppet - 用于查看 Puppet 代理所做的最后更改的日志文件

c# - 我如何使用 Caller Info 属性进行 TDD?

ruby-on-rails - 使用 Rails 进行测试驱动开发 (TDD)

ruby - erb sudoers 迭代数组的哈希值

puppet - 比较 puppet 模板中的两个字符串变量

Java - 从类中公共(public)函数的模拟调用类的私有(private)函数

c# - 有没有办法将任何东西指定为 NUnit Mocks Expect 调用的参数?

java - 我可以使用注释将原始变量注入(inject)模拟类吗?