Before: Save g:ale_c_build_dir Save g:ale_c_clangtidy_executable Save g:ale_c_clangtidy_checks Save g:ale_c_clangtidy_extra_options Save g:ale_cpp_clangtidy_executable Save g:ale_cpp_clangtidy_checks Save g:ale_cpp_clangtidy_extra_options " Use an invalid global executable, so we don't match it. let g:ale_c_clangtidy_executable = 'xxxinvalid' let g:ale_c_clangtidy_checks = [] let g:ale_c_clangtidy_extra_options = '' let g:ale_cpp_clangtidy_executable = 'xxxinvalidpp' let g:ale_cpp_clangtidy_checks = [] let g:ale_cpp_clangtidy_extra_options = '' let g:ale_c_build_dir = '' call ale#test#SetDirectory('/testplugin/test/fixers') After: Restore call ale#test#RestoreDirectory() Execute(The clangtidy callback should return the correct default values): call ale#test#SetFilename('../test-files/c/dummy.c') AssertEqual \ { \ 'read_temporary_file': 1, \ 'command': ale#Escape(g:ale_c_clangtidy_executable) \ . ' -fix -fix-errors %t' \ }, \ ale#fixers#clangtidy#Fix(bufnr('')) Execute(The clangtidy callback should include any additional options): call ale#test#SetFilename('../test-files/c/dummy.c') let g:ale_c_clangtidy_extra_options = '--some-option' AssertEqual \ { \ 'read_temporary_file': 1, \ 'command': ale#Escape(g:ale_c_clangtidy_executable) \ . ' -fix -fix-errors --some-option %t', \ }, \ ale#fixers#clangtidy#Fix(bufnr(''))