はじめに
serverspecでユーザーを一時的に変更してコマンドを実行する方法を解説します。
spec_helper.rb
次のメソッドを追記します。
def user_command(user, cmd)
command("su -l #{user} -c '#{cmd}'")
end
使い方
- rbenv_spec.rb
require 'spec_helper'
describe user_command(:alice, 'rbenv versions') do
its(:stdout) { should match /system/ }
its(:stdout) { should match /\* 2.0.0-p353/ }
its(:stdout) { should match /2.1.3/ }
end