0

我正在尝试为厨师编写单元测试并将加密数据包存根,如下所示。食谱部分

variables(car_model: Chef::EncryptedDataBagItem.load('databagname', node.environment, key_name)['cardetails']['car_model'])

在下面的模式中做存根

Chef::EncryptedDataBagItem.stub(:load).with('databagname', 'test', 'somekey').and_return(
"cardetails": {
  'car_model' => 'abc'
  }
)

将错误作为未定义的方法

无方法错误

nil:NilClass 的未定义方法“[]”

食谱跟踪:

我的数据包结构是

{ "id": "databagname", "cardetails": { "car_model": "ABC", "car_engine": "XYZ", "car_type": "DEE", } }

4

2 回答 2

0

当我使用以下语法进行存根时,它得到了解决

Chef::EncryptedDataBagItem.stub(:load).with('databagname', 'test', 'somekey').and_return(
  "cardetails" => {'car_model' => 'abcasasasasas'}
  )
于 2017-06-01T11:27:21.857 回答
0

一般来说,如果您能提供帮助,您不应该使用该 API。如果需要,普通data_bag_itemAPI 会自动解密,然后您可以使用 ChefSpec 中的普通存根助手。

于 2017-06-01T18:49:07.150 回答