🐜
Deno テスト環境構築 (Vim)
Deno のテストをいい感じに Vim
で実行できるように環境構築。
vim-test の導入
テスト実行には、以下のプラグインが有名そうだったので導入。
インストールは dein.vim だとこんな感じ。
[[plugins]]
repo = 'vim-test/vim-test'
depends = ['neoterm']
on_cmd = ['TestNearest', 'TestFile', 'TestSuite', 'TestLast', 'TestVisit']
hook_add = '''
nnoremap <silent> <space>tn <cmd>TestNearest<cr>
nnoremap <silent> <space>tf <cmd>TestFile<cr>
nnoremap <silent> <space>ts <cmd>TestSuite<cr>
nnoremap <silent> <space>tl <cmd>TestLast<cr>
nnoremap <silent> <space>tg <cmd>TestVisit<cr>
let test#strategy = {
\ 'nearest': 'neoterm',
\ 'file' : 'neoterm',
\ 'suite' : 'neoterm',
\ }
let test#javascript#denotest#options = {
\ 'all': '--no-check --unstable -A'
\ }
'''
[[plugins]]
repo = 'kassio/neoterm'
on_cmd = ['Tnew']
hook_add = '''
let g:neoterm_autoinsert = 1
let g:neoterm_autoscroll = 1
let g:neoterm_default_mod = 'botright'
let g:neoterm_size = 10
'''
vim-test だと、 strategy
と呼ばれるものでテスト実行に何を使用するか選ぶことができる。
色々試した結果、 kassio/neoterm が良さそうだったのでこれを使用中。
見え方とか変わるくらいやから正直これはなんでもいいと思う。
何が選べるかは vim-test/vim-test: strategies を参照。
Deno test 構成
Deno のテストでは組み込みの Deno.test
関数があるのでそれが使用できる。
基本的に実装が mod.ts
に記載してあるとすると、テストは mod_test.ts
に記載するっぽい。
(後ろに _test
をつける。)
かんたんに例を書くとこんな感じ。
- mod.ts
export const getTrue = (): boolean => {
return true;
};
export const add = (x: number, y: number): number => {
return x + y;
};
- mod_test.ts
import {
assert,
assertEquals,
} from "https://deno.land/std@0.95.0/testing/asserts.ts";
import { add, getTrue } from "./mod.ts";
Deno.test("getTrue test", () => {
assert(getTrue());
});
Deno.test("add test", () => {
const expected = 2;
const actual = add(1, 1);
assertEquals(actual, expected);
});
mod_test.ts
を開いて、 Deno.test("getTrue")
の付近にカーソルがある状態で <space>tn
を押下すると、以下のように getTrue
のみのテストが実行される。
<space>tf
を押下すると、以下のように mod_test.ts
のすべてのテストが実行される。
べんり。
Discussion