-
Notifications
You must be signed in to change notification settings - Fork 33
/
Copy pathtesting.jax
711 lines (590 loc) · 30.2 KB
/
testing.jax
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
*testing.txt* For Vim バージョン 9.1. Last change: 2025 Mar 25
VIMリファレンスマニュアル by Bram Moolenaar
VimおよびVim scriptのテスト *testing-support*
式の評価は |eval.txt| で説明されている。このファイルでは、Vim scriptでのテスト
の記述について詳しく説明する。これは、Vim自体のテストとプラグインのテストに使
用できる。
1. Vimのテスト |testing|
2. Test関数 |test-functions-details|
3. Assert関数 |assert-functions-details|
==============================================================================
1. Vimのテスト *testing*
Vimはビルド後にテストできる。通常は "make test" を使用する。テストはディレクト
リ "src/testdir" にある。
時間の経過とともに追加されたテストには、2つのタイプがある:
test20.in 最も古い、tiny ビルド用のみ
test_something.vim 新形式のテスト
*new-style-testing*
新しいテストは新形式のテストとして追加する必要がある。このテストスクリプトは
test_<feature>.vim という命名になる (<feature> はテストする対象の機能に置き換
える)。これらは、テストコマンドと期待される結果を1か所に保持するために、
|assert_equal()| などの関数を使用する。
*old-style-testing*
|+eval| 機能なしでVimをテストするときのみこのテストを使う。
詳細は src/testdir/README.txt ファイルを確認のこと。
==============================================================================
2. Test関数 *test-functions-details*
test_alloc_fail({id}, {countdown}, {repeat}) *test_alloc_fail()*
この関数はテストのために使われる: {id} のメモリ割り当てが行わ
れた際に {countdown} はデクリメントされ、それが0になれば
{repeat} 回のメモリの割り当ての失敗を発生させる。{repeat} が1
未満の場合は、失敗を1回のみ発生させる。
|method| としても使用できる: >
GetAllocId()->test_alloc_fail()
<
戻り値の型: |Number|
test_autochdir() *test_autochdir()*
Vimの起動が完了する前に 'autochdir' の効果を有効にするためのフ
ラグをセットする。
戻り値の型: |Number|
test_feedinput({string}) *test_feedinput()*
{string} の文字を、あたかもユーザーがタイプしたかのように処理
する。これは低レベル入力バッファを使用する。この関数は |+unix|
もしくは GUI で動作しているときに機能する。
|method| としても使用できる: >
GetText()->test_feedinput()
<
戻り値の型: |Number|
test_garbagecollect_now() *test_garbagecollect_now()*
|garbagecollect()| とほぼ同じであるが、この関数はガベージコレ
クトを直ちに実行する。この関数を実行する場合は、構造体が内部に
存在しないようにするために直接呼び出す必要がある。また、この関
数を呼び出す前に |v:testing| を設定する必要がある。 *E1142*
これは、スタック上の変数が解放されるため、:def 関数から呼び出
された場合には動作しない。
戻り値の型: |Number|
test_garbagecollect_soon() *test_garbagecollect_soon()*
あたかもメインループの中にいるように、ガベージコレクトを呼び出
すためのフラグを設定する。テストでのみ使用される。
戻り値の型: |Number|
test_getvalue({name}) *test_getvalue()*
内部変数の値を取得する。{name} のこれらの値がサポートされてい
る:
need_fileinfo
|method| としても使用できる: >
GetName()->test_getvalue()
<
戻り値の型: |Number|
*test_gui_event()*
test_gui_event({event}, {args})
機能テストしているVimで GUI のイベント {event} を引数 {args}
で生成する。この関数は GUI で動作している場合のみ動作する。
{event} は文字列でサポートする値は:
"dropfiles" 1つ以上のファイルをウィンドウへドロップ。
"findrepl" テキストの検索と置換。
"mouse" マウスのボタンクリックイベント。
"scrollbar" スクロールバーの移動もしくはドラッグ。
"key" 低レベルキーボードイベントを送出する。
"tabline" マウスクリックによるタブページ行の選択。
"tabmenu" タブページ行のメニューエントリの選択。
引数 {args} はイベントの引数を持つ辞書。
"dropfiles":
指定したウィンドウへ1つ以上のファイルのドロップ。{args} でサ
ポートする項目は:
files: ファイル名のリスト
row: ウィンドウの行番号
col: ウィンドウの桁番号
modifiers: 修飾キー。サポートする値は:
0x4 Shift
0x8 Alt
0x10 Ctrl
この(複数)ファイルは引数リスト |argument-list| に追加され、
{files} の最初のファイルがウィンドウで編集状態になる。詳細な
情報は |drag-n-drop| を参照。このイベントは |drop_file| 機能
が有効な場合のみ動作する。
"findrepl":
{検索/置換ダイアログを持つ GUI のときのみ有効}
テキストの検索と置換を行う。{args} でサポートする項目は:
find_text: 検索する文字列。
repl_text: 置換する文字列。
flags: 検索/置換を制御するフラグ。サポートする値は:
1 次の文字列を検索(検索ダイアログ)
2 次の文字列を検索(置換ダイアログ)
3 1度だけ文字列を置換
4 全マッチの置換
8 完全一致した単語のみマッチ
16 マッチする大文字小文字状態
forward: 1を設定すると前方への検索。
"mouse":
マウスのクリック、あるいはマウスの移動のイベントを注入する。
{args} でサポートする項目は:
button: マウスボタン。サポートする値は:
0 左マウスボタン
1 中央マウスボタン
2 右マウスボタン
3 マウスボタンリリース
4 スクロールホイール下
5 スクロールホイール上
6 スクロールホイール左
7 スクロールホイール右
row: マウスクリックの行番号。Vimのウィンドウの最初
の行は1で最後の行は 'lines' になる。
col: マウスクリックの桁番号。{col} の最大値は
'columns' になる。
multiclick: 1を設定すると複数のマウスクリックを注入する。
modifiers: 修飾キー。サポートする値は:
4 shiftキーが押されている
8 altキーが押されている
16 ctrlキーが押されている
move: オプション; 真の場合、マウス移動イベントを生成
させることができる。
{args} の row: と col: だけが使われ、必須であ
る。これらは、"cell" に応じて、ピクセルまたは
スクリーンセルとして解釈される。
'mousemoveevent' が設定されているか、ポップアッ
プがマウス移動イベントを使用している場合にのみ
イベントを発生させる。
cell: オプション: 存在し真の場合 "move" はピクセル位
置の代わりにスクリーンのセル位置を使う
"scrollbar":
左、右あるいは水平スクロールバーの設定もしくはドラッグ。スク
ロールバーが実際に存在する時のみ動作する。{args} でサポート
する項目は:
which: スクロールバーを選択する。サポートする値は:
left 現在のウィンドウの左スクロールバー
right 現在のウィンドウの右スクロールバー
hor 水平スクロールバー
value: 垂直スクロールバーの場合、値は 0 からバッファ
の行数から 1 を引いた値までの範囲になる。水平
スクロールバーの場合、'wrap' が設定されていな
いと仮定すると、値は 1 から行の最大長までの間
の値になる。
dragging: 1はスクロールバーをドラッグし、0はスクロール
バーをクリックする。
"key":
低レベルのキーボードイベント(例、キーUpやキーDown)を送出す
る。
現在は MS-Windows のみサポートしている。
{args} でサポートする項目は:
event: サポートする文字列値は:
keyup キーUpイベントを生成する
keydown キーDownイベントを生成する
keycode: キーのUp/Downイベントで使用するキーコード
*E1291*
"tabline":
タブページ行のマウスクリックイベントの注入によるタブページの
選択。{args} でサポートする項目は:
tabnr: タブページ番号
"tabmenu":
タブページ行のメニュー項目の選択イベントの注入。{args} でサ
ポートする項目は:
tabnr: タブページの番号
item: タブページメニュー項目の番号。1で最初のメニュー
項目、2で2番目の項目になる。
GUI イベントを注入した後、おそらく |feedkeys()| を呼び出してそ
れらを処理する必要がある。例: >
call feedkeys("y", 'Lx!')
<
イベントが正常に追加された場合は TRUE を返し、失敗した場合は
FALSE を返す。
|method| としても使用できる: >
GetEvent()->test_gui_event({args})
<
戻り値の型: |vim9-boolean|
test_ignore_error({expr}) *test_ignore_error()*
{expr} を含むすべてのエラーを無視する。代わりに通常メッセージ
が表示される。
これは、テストにおいて、try/catch を用いてエラーを捕捉できない
(以降のコードをスキップするので)場合のみに使うことを意図してい
る。
{expr} はパターンとしてではなく、文字として用いられる。
{expr} が文字列 "RESET" の場合、無視されるエラーのリストは空に
なる。
|method| としても使用できる: >
GetErrorText()->test_ignore_error()
<
戻り値の型: |Number|
test_mswin_event({event}, {args}) *test_mswin_event()*
Vim の機能をテストするために、引数 {args} で低レベルの
MS-Windows {event} を生成する。MS-Windows の GUI でもコンソー
ルでも動作する。
{event} は文字列で、サポートされている値は以下:
"mouse" マウスイベント。
"key" キーボードイベント。
"set_keycode_trans_strategy"
キーの変換方法を変更する。
"mouse":
マウスボタンクリックイベントまたはマウス移動イベントを注入す
る。{args} でサポートされる項目は以下:
button: マウスボタン。サポートされている値は以下:
0 右マウスボタン
1 中マウスボタン
2 左マウスボタン
3 マウスボタンリリース
4 スクロールホイール下
5 スクロールホイール上
6 スクロールホイール左
7 スクロールホイール右
row: マウスクリックの行番号。Vim ウィンドウの最初の
行は 1 で、最後の行は 'lines' である。
col: マウスクリックの桁番号。{col} の最大値は
'columns' である。
Note: row と col は、コンソールアプリケーショ
ンでは常にスクリーンセルとして解釈される。しか
し、GUI では "cell" に応じてピクセルとして解釈
される。
multiclick: 1 に設定すると、マウスをダブルクリックするイベ
ントが発生する。
modifiers: キー修飾子。サポートされている値は以下:
4 shift が押された
8 alt が押された
16 ctrl が押された
move: オプション; 使用され、TRUE の場合、マウス移動
イベントを生成できる。
{args} row: と col: のみが使用され、必須。
'mousemoveevent' が設定されている場合、または
ポップアップでマウス移動イベントが使用されてい
る場合に、結果としてイベントが発生するだけであ
る。
cell: GUI のオプション: 存在し、TRUE の場合、"move"
はピクセル位置の代わりにスクリーンセルを使用す
る。コンソールでは使用されない。
"key":
低レベルのキーボードイベント (例: keyup または keydown) を送
信する。
{args} でサポートされている項目は以下:
event: サポートされている文字列値は以下:
keyup キーアップイベントを生成する
keydown キーダウンイベントを生成する
keycode: キーアップイベントまたはキーダウンイベントに使
用するキーコード。
modifiers: オプション; キー修飾子。
サポートされている値は以下:
2 shift が押された
4 ctrl が押された
8 alt が押された
Note: これらの値はマウス修飾子とは異なる。
execute: オプション。|feedkeys()| のモードx に似ている。
これが含まれていて true(非ゼロ)に設定されて
いる場合、Vim はバッファリングされた未処理の
キーイベントを処理する。これが設定され true の
場合、他のすべての {args} 項目はオプションであ
る。
"set_keycode_trans_strategy":
|w32-experimental-keycode-trans-strategy|
キーコードの変換方法を切り替える。サポートされているメソッド
は次のとおり:
experimental: patch v8.2.4807 以降に使用される
ToUnicode() Win API 呼び出しを使用するメ
ソッド。
classic: patch v8.2.4807 より前に使用されていた
TranslateMessage() Win API 呼び出しを使用
するメソッド。
イベントが正常に追加または実行された場合は TRUE を返し、失敗し
た場合は FALSE を返す。
|method| としても使用できる: >
GetEvent()->test_mswin_event({args})
<
戻り値の型: |vim9-boolean|
test_null_blob() *test_null_blob()*
null の |Blob| を返す。これはテストのみに使われる。
戻り値の型: |Blob|
test_null_channel() *test_null_channel()*
null の |Channel| を返す。これはテストのみに使われる。
{|+channel| 機能つきでコンパイルされたときのみ有効}
戻り値の型: |Channel|
test_null_dict() *test_null_dict()*
null の |Dict| を返す。これはテストのみに使われる。
戻り値の型: dict<any>
test_null_function() *test_null_function()*
null の |Funcref| を返す。これはテストのみに使われる。
戻り値の型: func(...): unknown
test_null_job() *test_null_job()*
null の |Job| を返す。これはテストのみに使われる。
{|+job| 機能つきでコンパイルされたときのみ有効}
戻り値の型: |job|
test_null_list() *test_null_list()*
null の |List| を返す。これはテストのみに使われる。
戻り値の型: list<any>
test_null_partial() *test_null_partial()*
null の |Partial| を返す。これはテストのみに使われる。
戻り値の型: func(...): unknown
test_null_string() *test_null_string()*
null の |String| を返す。これはテストのみに使われる。
戻り値の型: |String|
test_null_tuple() *test_null_tuple()*
null の |Tuple| を返す。これはテストのみに使われる。
戻り値の型: |Tuple|
test_option_not_set({name}) *test_option_not_set()*
オプション {name} が設定されたことを示すフラグをリセットする。
したがって、それはまだデフォルト値を持っているように見える。次
のように使う: >
set ambiwidth=double
call test_option_not_set('ambiwidth')
< 値が "double" であっても、'ambiwidth' オプションは変更されてい
ないかのように振舞う。
テストにのみ使用する!
|method| としても使用できる: >
GetOptionName()->test_option_not_set()
<
戻り値の型: |Number|
test_override({name}, {val}) *test_override()*
テストを実行できるようにするため、Vimの内部処理の特定の部分を
置き換える。Vimをテストするためだけに使用すること!
置き換えは、{val} が非 0 のときに有効化され、{val} が 0 のとき
に取り除かれる。
現在、{name} に使える値は:
{name} {val} が非 0 のときの効果 ~
alloc_lines 確保したメモリ内に各バッファの行のコピーを作り、
それによりメモリアクセスのエラーが valgrind で検
出できる。
autoload `import autoload` でスクリプトを正しい手順でロー
ドし、項目が使用されるまで延期はしない。
char_avail char_avail() 関数を無効化する。
defcompile 読み込まれたスクリプト内のすべての |:def| 関数は、
定義時にコンパイルされる。これは、スクリプトで
|:defcompile| コマンドを使用するのと似ている。
nfa_fail 古い正規表現エンジンに戻すために、NFA regexp エン
ジンを失敗させる。
no_query_mouse "dec" 端末のマウス位置を問い合わせない。
no_wait_return "no_wait_return" フラグを設定する。"ALL" では
復元されない。
redraw redrawing() 関数を無効化する。
redraw_flag RedrawingDisabled フラグを無視する。
starting "starting" 変数を初期化する、下記参照。
term_props バージョン文字列が検出された場合、すべてのターミ
ナルプロパティをリセットする。
ui_delay ui_delay() で使用するミリ秒単位の時間; メッセージ
の最大3秒の待ち時間を上書きする。
unreachable `throw` と `:return` の後のコードではエラーになら
ない。
uptime sysinfo.uptime を上書きする。
vterm_title 端末ウィンドウ内でジョブが走っている場合にウィン
ドウタイトルを設定する。
ALL alloc_lines 以外のすべての置き換えをクリアする
({val} は使われない)。
"starting" は、起動が完了したようにテストが振る舞うべきときに
使われる。テストはスクリプトを読み込むことによって開始されるの
で、"starting" 変数は非ゼロである。これは通常はいいこと (テス
トが早く実行される) だが、これによって動作が変化し、テストが適
切に動作しなくなる場合がある。
次のようにしたとき: >
call test_override('starting', 1)
< "starting" の値が保存される。次のようにして復元される: >
call test_override('starting', 0)
< フラグが後でリセットされるようにするには、`:defer `を使うと便
利である: >
call test_override('unreachable', 1)
defer call test_override('unreachable', 0)
< |method| としても使用できる: >
GetOverrideVal()-> test_override('starting')
<
戻り値の型: |Number|
test_refcount({expr}) *test_refcount()*
{expr} の参照カウントを返す。{expr} が参照カウントを持たない型
の場合は、-1 を返す。この関数はテスト用。
|method| としても使用できる: >
GetVarname()->test_refcount()
<
戻り値の型: |Number|
test_setmouse({row}, {col}) *test_setmouse()*
次のマウス操作に使用するマウス位置を設定する。
{row} と {col} は 1ベースである。
例: >
call test_setmouse(4, 20)
call feedkeys("\<LeftMouse>", "xt")
<
戻り値の型: |Number|
test_settime({expr}) *test_settime()*
Vim が内部的に用いる時間を設定する。現在は history のタイムス
タンプ、viminfo のタイムスタンプ、undo に使用されている。
1 を渡せば、Vim は、警告やエラーメッセージの後、スリープしなく
なる。
{expr} は、数値として評価されなければならない。0 を渡せば、Vim
の内部時間は通常動作に戻る。
|method| としても使用できる: >
GetTime()->test_settime()
<
戻り値の型: |Number|
test_srand_seed([{seed}]) *test_srand_seed()*
{seed} が渡されたときは `srand()` で使われる種の値を設定する。
省略されたときはテスト用の種を削除する。
戻り値の型: |Number|
test_unknown() *test_unknown()*
unknown型の値を返す。これはテストのみに使われる。
戻り値の型: unknown
test_void() *test_void()*
void型の値を返す。これはテストのみに使われる。
戻り値の型: void
==============================================================================
3. Assert関数 *assert-functions-details*
assert_beeps({cmd}) *assert_beeps()*
{cmd} を実行し、それがビープもしくはビジュアルベルを発生させな
かった場合、|v:errors| にエラーメッセージを追加する。
|assert_fails()|、|assert_nobeep()|、|assert-return| も参照。
|method| としても使用できる: >
GetCmd()->assert_beeps()
<
戻り値の型: |Number|
*assert_equal()*
assert_equal({expected}, {actual} [, {msg}])
{expected}と{actual}が等しくない場合、|v:errors|にエラーメッセ
ージを追加し、1 が返る。そうでなければ 0 が返る。
|assert-return|
エラーは "Expected {expected} but got {actual}" という形式で
ある。{msg} が存在する場合、スクリプトから実行される時にアサー
トの場所と共に、その前に付加される。
暗黙的な変換は行われないため、文字列 "4" は数値 4 とは異なる。
同様に、数値 4 は浮動小数点数 4.0 と異なる。ここでは
'ignorecase' の値は使われず、大文字小文字は常に区別される。
例: >
call assert_equal('foo', 'bar', 'baz')
< |v:errors| に以下を追加する:
test.vim line 12: baz: Expected 'foo' but got 'bar' ~
|method| としても使用でき、ベースは第2引数として渡される: >
mylist->assert_equal([1, 2, 3])
<
戻り値の型: |Number|
*assert_equalfile()*
assert_equalfile({fname-one}, {fname-two} [, {msg}])
ファイル {fname-one} および {fname-two} がまったく同じテキスト
でない場合、|v:errors| にエラーメッセージが追加される。
|assert-return| も参照。
{fname-one} もしくは {fname-two} が存在しない場合、それに関連
したエラーとなる。
主に |terminal-diff| で役立つ。
|method| としても使用できる: >
GetLog()->assert_equalfile('expected.log')
<
戻り値の型: |Number|
assert_exception({error} [, {msg}]) *assert_exception()*
v:exception に{error}が含まれていない時、|v:errors|にエラーメッ
セージを追加する。|assert-return| も参照。
これは例外を投げるコマンドのテストを行う場合に使うことができ
る。コロンが続くエラー番号を使えば、翻訳の問題を回避できる: >
try
失敗するコマンド
call assert_false(1, 'command should have failed')
catch
call assert_exception('E492:')
endtry
<
戻り値の型: |Number|
*assert_fails()*
assert_fails({cmd} [, {error} [, {msg} [, {lnum} [, {context}]]]])
{cmd}を実行しエラーを生成しなかった場合か、エラーメッセージの
中に{error}が見つからない場合、|v:errors| にエラーメッセージを
追加する。|assert-return| も参照。
*E856*
{error}が文字列である場合、最初に報告されたエラーの中から文字
通り見つからなければならない。例えば、"E123:" の場合、多くの場
合、これはコロンを含むエラーコードになる: >
call assert_fails('bad cmd', 'E987:')
<
{error}が1つまたは2つの文字列をもつ |List| の場合、これらをパ
ターンとして利用する。最初のパターンは、最初に報告されたエラー
と照合される: >
call assert_fails('cmd', ['E987:.*expected bool'])
<
2番目のパターンが存在する場合、最後に報告されたエラーと照合さ
れる。
エラーが1つしかない場合は、両方のパターンが一致する必要がある。
これを使用して、エラーが1つしかないことをチェックできる。
最後のエラーのみにマッチさせるには、最初のエラーに空文字列を使
用する: >
call assert_fails('cmd', ['', 'E987:'])
<
{msg} が空の場合は利用されない。引数 {lnum} を渡す時にデフォル
トメッセージを取得するにはこれを使うこと。
*E1115*
{lnum} が非負数で設定され、引数 {error} が設定されてマッチした
時、エラーが報告されるときの行番号と比較される。行番号は関数内
かスクリプト内での行番号になる。
*E1116*
{context} が存在すると、 パターンとして使われ {lnum} が位置する
コンテキスト (スクリプト名か関数名) に対してマッチする。
Note: ビープ音の発生はエラーとは見なされず、いくつかのコマンド
は失敗時にビープ音を鳴らすだけである。これらについては
|assert_beeps()| を使用すること。
|method| としても使用できる: >
GetCmd()->assert_fails('E99:')
<
戻り値の型: |Number|
assert_false({actual} [, {msg}]) *assert_false()*
|assert_equal()|と同様に、{actual}がfalseでない場合、|v:errors|
にエラーメッセージを追加する。
エラーは "Expected false but got {actual}" という形式である。
{msg} が存在する場合、スクリプトから実行される時にアサートの場
所と共に、その前に付加される。
|assert-return| も参照。
ゼロである時、その値はfalseである。{actual}が数値でない場合、
テストが失敗する。
|method| としても使用できる: >
GetResult()->assert_false()
<
戻り値の型: |Number|
assert_inrange({lower}, {upper}, {actual} [, {msg}]) *assert_inrange()*
これは数値または |Float| の値をテストする。{actual}が{lower}よ
り小さいか{upper}より大きい場合、|v:errors|にエラーメッセージ
が追加される。|assert-return| も参照。
エラーは "Expected range {lower} - {upper}, but got {actual}"
という形式である。{msg} が存在する場合は、その前に置かれる。
戻り値の型: |Number|
*assert_match()*
assert_match({pattern}, {actual} [, {msg}])
{pattern}が{actual}と一致しない場合、|v:errors|にエラーメッセー
ジが追加される。|assert-return| も参照。
エラーは "Pattern {pattern} does not match {actual}" という形
式である。{msg} が存在する場合、スクリプトから実行される時にア
サートの場所と共に、その前に付加される。
|=~|と同じように{pattern}が使われる: マッチングは 'magic' や
'cpoptions' の実際の値に関係なく、'magic' が設定され、
'cpoptions' が空であるように常に行われる。
{actual}は文字列として使用され、自動変換が適用される。テキスト
の先頭と最後に一致させるためには、"^" と "$" を使用すること。
両方を使用してテキスト全体を一致させる。{訳注: 使わなければ、
部分一致で判定が行われる。}
例: >
call assert_match('^f.*o$', 'foobar')
< これは |v:errors| に文字列が追加されることになる:
test.vim line 12: Pattern '^f.*o$' does not match 'foobar' ~
|method| としても使用できる: >
getFile()->assert_match('foo.*')
<
戻り値の型: |Number|
assert_nobeep({cmd}) *assert_nobeep()*
{cmd} を実行し、それがビープもしくはビジュアルベルを発生させた
場合、|v:errors| にエラーメッセージを追加する。
|assert_beeps()| も参照。
|method| としても使用できる: >
GetCmd()->assert_nobeep()
<
戻り値の型: |Number|
*assert_notequal()*
assert_notequal({expected}, {actual} [, {msg}])
`assert_equal()` の反対: {expected}と{actual}が等しいときにエ
ラーメッセージを |v:errors| に追加する。|assert-return| も参
照。
|method| としても使用できる: >
mylist->assert_notequal([1, 2, 3])
<
戻り値の型: |Number|
*assert_notmatch()*
assert_notmatch({pattern}, {actual} [, {msg}])
`assert_match()` の反対: {pattern}が{actual}にマッチするときに
|v:errors| にエラーメッセージを追加する。
|assert-return| も参照。
|method| としても使用できる: >
getFile()->assert_notmatch('bar.*')
<
戻り値の型: |Number|
assert_report({msg}) *assert_report()*
テストの失敗を文字列 {msg} を使って直接報告する。
常に 1 を返す。
|method| としても使用できる: >
GetMessage()->assert_report()
<
戻り値の型: |Number|
assert_true({actual} [, {msg}]) *assert_true()*
|assert_equal()|と同様に、{actual}がtrueでない場合、|v:errors|
にエラーメッセージを追加する。
|assert-return| も参照。
非ゼロである時、その値はTRUEである。{actual}が数値でない場合、
テストが失敗する。
{msg} が指定されると、スクリプトから実行される時にアサートの場
所と共に、デフォルトのメッセージの前に付加される。
|method| としても使用できる: >
GetResult()->assert_true()
<
戻り値の型: |Number|
vim:tw=78:ts=8:noet:ft=help:norl: