我正在尝试为厨师编写单元测试并将加密数据包存根,如下所示。 食谱部分
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'
}
)
将错误视为未定义的方法
未定义的方法`[]'为零:NilClass
我的数据包结构是
{
"id": "databagname",
"cardetails": {
"car_model": "ABC",
"car_engine": "XYZ",
"car_type": "DEE",
}
}
答案 0 :(得分:0)
当我使用以下语法进行存根
时,它已得到解决Chef::EncryptedDataBagItem.stub(:load).with('databagname', 'test', 'somekey').and_return(
"cardetails" => {'car_model' => 'abcasasasasas'}
)
答案 1 :(得分:0)
一般情况下,如果您可以提供帮助,则不应该使用该API。正常的data_bag_item
API会在需要时自动解密,然后您可以在ChefSpec中使用正常的存根帮助程序。