Tôi khá mới đối với Ruby, nhưng tôi đã làm rất nhiều nghiên cứu về thử nghiệm Chef trong hai tuần qua. Bài kiểm tra này sử dụng ChefSpec & Fauxhai, nhưng nó không trông rất "ruby-ish" và tôi đã hy vọng cộng đồng có thể cho tôi một số gợi ý về phong cách mã hóa. Có cách nào tốt hơn để viết một vòng lặp lồng nhau như thế này?Phản hồi về kiểu mã hóa Ruby/ChefSpec
sách dạy nấu ăn/foo/công thức nấu ăn/default.rb
package "foo" do
action :install
end
sách dạy nấu ăn/foo/spec/default_spec.rb
require 'chefspec'
describe 'foo::default' do
platforms = {
"debian" => ['6.0.5'],
"ubuntu" => ['12.04', '10.04'],
"centos" => ['5.8', '6.0', '6.3'],
"redhat" => ['5.8', '6.3'],
"mac_os_x" => ['10.6.8', '10.7.4', '10.8.2'],
"windows" => ['2008R2']
}
platforms.each do |platform,versions|
versions.each do |version|
context "on #{platform} #{version}" do
before do
Fauxhai.mock(platform: platform, version: version)
end
it 'should install foo' do
@runner = ChefSpec::ChefRunner.new.converge('foo::default')
@runner.should install_package 'foo'
end
end
end
end
end
Bất kỳ và tất cả các thông tin phản hồi được chào đón. Cảm ơn bạn!
https://github.com/bbatsov/ruby-style-guide là tài nguyên chung cho các nguyên tắc mã hóa Ruby được đề xuất. Tôi không nghĩ rằng bạn có thể làm nhiều việc để làm sạch những vòng lặp lồng nhau đó trong khi vẫn duy trì khả năng đọc. –
Tôi đã đọc qua hướng dẫn nhưng tôi không thấy nhiều tôi có thể cải thiện. Cảm ơn vì bạn đã phản hồi! – Rapsey