如何在Rspec-Puppet中模拟自定义类型 [英] How to Mock a Custom Type in Rspec-Puppet

查看:120
本文介绍了如何在Rspec-Puppet中模拟自定义类型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

由于实现了但是,我想避免通过mocking cystom types在每个人偶模块中创建到custom folder的符号链接.

However, I would like to avoid to create a symlink to the custom folder in every puppet-module by mocking cystom types.

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

The question is how to mock Custom Puppet Types in Rspec-Puppet.

我发现了一个有关模拟自定义人偶的示例. c5>,但我正在寻找一个模拟Puppet Custom Types的示例.

I have found an example regarding the mocking of a Custom Puppet Function but I am looking for an example to mock Puppet Custom Types.

人偶代码

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

Rspec人偶代码

require 'spec_helper'

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

推荐答案

在Puppet自己的

A good place to go looking for examples on mocking is the collection of Puppet's own unit tests.

我不确定是否需要考虑一个专业,但是在Puppet的规格测试中,模拟的工作方式如下:

I'm not sure if there are an specialties that needs to be considered, but within Puppet's spec test, the mocking works like this:

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)

据我了解,这是涉及的rspec-puppet可能是必需的.

From what I understand, this is moccha style mocking. In plain rspec, mocking/stubbing is a bit more involved, which may be necessary with rspec-puppet.

这篇关于如何在Rspec-Puppet中模拟自定义类型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆