Before: Save g:ale_chef_foodcritic_executable Save g:ale_chef_foodcritic_options unlet! g:ale_chef_foodcritic_executable unlet! g:ale_chef_foodcritic_options call ale#test#SetDirectory('/testplugin/test') runtime ale_linters/chef/foodcritic.vim After: Restore unlet! b:ale_chef_foodcritic_executable unlet! b:ale_chef_foodcritic_options call ale#test#RestoreDirectory() call ale#linter#Reset() Execute(The default command should be correct): AssertEqual \ 'foodcritic', \ ale_linters#chef#foodcritic#GetExecutable(bufnr('')) AssertEqual \ ale#Escape('foodcritic') . ' %s', \ ale_linters#chef#foodcritic#GetCommand(bufnr('')) Execute(Extra options should be included with escapeed tildes (~)): let b:ale_chef_foodcritic_options = '-t ~F011' AssertEqual \ ale#Escape('foodcritic') . ' -t \~F011 %s', \ ale_linters#chef#foodcritic#GetCommand(bufnr('')) Execute(The executable should be configurable): let b:ale_chef_foodcritic_executable = 'foobar' AssertEqual \ 'foobar', \ ale_linters#chef#foodcritic#GetExecutable(bufnr('')) AssertEqual \ ale#Escape('foobar') . ' %s', \ ale_linters#chef#foodcritic#GetCommand(bufnr(''))