xref: /vim-8.2.3635/runtime/doc/testing.txt (revision 9b7bf9e9)
17ff78465SBram Moolenaar*testing.txt*	For Vim version 8.2.  Last change: 2020 Jul 09
2ed997adaSBram Moolenaar
3ed997adaSBram Moolenaar
4ed997adaSBram Moolenaar		  VIM REFERENCE MANUAL	  by Bram Moolenaar
5ed997adaSBram Moolenaar
6ed997adaSBram Moolenaar
7ed997adaSBram MoolenaarTesting Vim and Vim script			*testing-support*
8ed997adaSBram Moolenaar
9ed997adaSBram MoolenaarExpression evaluation is explained in |eval.txt|.  This file goes into details
10ed997adaSBram Moolenaarabout writing tests in Vim script.  This can be used for testing Vim itself
11ed997adaSBram Moolenaarand for testing plugins.
12ed997adaSBram Moolenaar
13ed997adaSBram Moolenaar1. Testing Vim				|testing|
145477506aSBram Moolenaar2. Test functions			|test-functions-details|
155477506aSBram Moolenaar3. Assert functions			|assert-functions-details|
16ed997adaSBram Moolenaar
17ed997adaSBram Moolenaar==============================================================================
18ed997adaSBram Moolenaar1. Testing Vim						*testing*
19ed997adaSBram Moolenaar
20ed997adaSBram MoolenaarVim can be tested after building it, usually with "make test".
21ed997adaSBram MoolenaarThe tests are located in the directory "src/testdir".
22ed997adaSBram Moolenaar
23ed997adaSBram MoolenaarThere are several types of tests added over time:
24ed997adaSBram Moolenaar	test33.in		oldest, don't add any of these
25ed997adaSBram Moolenaar	test_something.in	old style tests
26ed997adaSBram Moolenaar	test_something.vim	new style tests
27ed997adaSBram Moolenaar
28ed997adaSBram Moolenaar						*new-style-testing*
29ed997adaSBram MoolenaarNew tests should be added as new style tests.  These use functions such as
30ed997adaSBram Moolenaar|assert_equal()| to keep the test commands and the expected result in one
31ed997adaSBram Moolenaarplace.
32ed997adaSBram Moolenaar						*old-style-testing*
33ed997adaSBram MoolenaarIn some cases an old style test needs to be used.  E.g. when testing Vim
34ed997adaSBram Moolenaarwithout the |+eval| feature.
35ed997adaSBram Moolenaar
36ed997adaSBram MoolenaarFind more information in the file src/testdir/README.txt.
37ed997adaSBram Moolenaar
38ed997adaSBram Moolenaar==============================================================================
395477506aSBram Moolenaar2. Test functions				*test-functions-details*
40ed997adaSBram Moolenaar
41ed997adaSBram Moolenaartest_alloc_fail({id}, {countdown}, {repeat})		*test_alloc_fail()*
42ed997adaSBram Moolenaar		This is for testing: If the memory allocation with {id} is
43ed997adaSBram Moolenaar		called, then decrement {countdown}, and when it reaches zero
44ed997adaSBram Moolenaar		let memory allocation fail {repeat} times.  When {repeat} is
45ed997adaSBram Moolenaar		smaller than one it fails one time.
46ed997adaSBram Moolenaar
47ce90e36fSBram Moolenaar		Can also be used as a |method|: >
48ce90e36fSBram Moolenaar			GetAllocId()->test_alloc_fail()
49ed997adaSBram Moolenaar
50ed997adaSBram Moolenaartest_autochdir()					*test_autochdir()*
51ed997adaSBram Moolenaar		Set a flag to enable the effect of 'autochdir' before Vim
52ed997adaSBram Moolenaar		startup has finished.
53ed997adaSBram Moolenaar
54ed997adaSBram Moolenaar
55ed997adaSBram Moolenaartest_feedinput({string})				*test_feedinput()*
56ed997adaSBram Moolenaar		Characters in {string} are queued for processing as if they
57ed997adaSBram Moolenaar		were typed by the user. This uses a low level input buffer.
58ed997adaSBram Moolenaar		This function works only when with |+unix| or GUI is running.
59ed997adaSBram Moolenaar
60ce90e36fSBram Moolenaar		Can also be used as a |method|: >
61ce90e36fSBram Moolenaar			GetText()->test_feedinput()
62ed997adaSBram Moolenaar
63ed997adaSBram Moolenaartest_garbagecollect_now()			 *test_garbagecollect_now()*
64ed997adaSBram Moolenaar		Like garbagecollect(), but executed right away.  This must
65ed997adaSBram Moolenaar		only be called directly to avoid any structure to exist
66ed997adaSBram Moolenaar		internally, and |v:testing| must have been set before calling
67ed997adaSBram Moolenaar		any function.
68ed997adaSBram Moolenaar
69ed997adaSBram Moolenaar
70ed997adaSBram Moolenaartest_garbagecollect_soon()			 *test_garbagecollect_soon()*
71ed997adaSBram Moolenaar		Set the flag to call the garbagecollector as if in the main
72ed997adaSBram Moolenaar		loop.  Only to be used in tests.
73ed997adaSBram Moolenaar
74ed997adaSBram Moolenaar
75ed997adaSBram Moolenaartest_getvalue({name})					*test_getvalue()*
76ed997adaSBram Moolenaar		Get the value of an internal variable.  These values for
77ed997adaSBram Moolenaar		{name} are supported:
78ed997adaSBram Moolenaar			need_fileinfo
79ed997adaSBram Moolenaar
80ce90e36fSBram Moolenaar		Can also be used as a |method|: >
81ce90e36fSBram Moolenaar			GetName()->test_getvalue()
82ed997adaSBram Moolenaar
83ed997adaSBram Moolenaartest_ignore_error({expr})			 *test_ignore_error()*
84ed997adaSBram Moolenaar		Ignore any error containing {expr}.  A normal message is given
85ed997adaSBram Moolenaar		instead.
86ed997adaSBram Moolenaar		This is only meant to be used in tests, where catching the
87ed997adaSBram Moolenaar		error with try/catch cannot be used (because it skips over
88ed997adaSBram Moolenaar		following code).
89ed997adaSBram Moolenaar		{expr} is used literally, not as a pattern.
90ed997adaSBram Moolenaar		When the {expr} is the string "RESET" then the list of ignored
91ed997adaSBram Moolenaar		errors is made empty.
92ed997adaSBram Moolenaar
93ce90e36fSBram Moolenaar		Can also be used as a |method|: >
94ce90e36fSBram Moolenaar			GetErrorText()->test_ignore_error()
95ed997adaSBram Moolenaar
96ed997adaSBram Moolenaartest_null_blob()					*test_null_blob()*
97ed997adaSBram Moolenaar		Return a |Blob| that is null. Only useful for testing.
98ed997adaSBram Moolenaar
99ed997adaSBram Moolenaar
100ed997adaSBram Moolenaartest_null_channel()					*test_null_channel()*
101ed997adaSBram Moolenaar		Return a |Channel| that is null. Only useful for testing.
102ed997adaSBram Moolenaar		{only available when compiled with the +channel feature}
103ed997adaSBram Moolenaar
104ed997adaSBram Moolenaar
105ed997adaSBram Moolenaartest_null_dict()					*test_null_dict()*
106ed997adaSBram Moolenaar		Return a |Dict| that is null. Only useful for testing.
107ed997adaSBram Moolenaar
108ed997adaSBram Moolenaar
109e69f6d04SBram Moolenaartest_null_function()					*test_null_function()*
110d1caa941SBram Moolenaar		Return a |Funcref| that is null. Only useful for testing.
111e69f6d04SBram Moolenaar
112e69f6d04SBram Moolenaar
113ed997adaSBram Moolenaartest_null_job()						*test_null_job()*
114ed997adaSBram Moolenaar		Return a |Job| that is null. Only useful for testing.
115ed997adaSBram Moolenaar		{only available when compiled with the +job feature}
116ed997adaSBram Moolenaar
117ed997adaSBram Moolenaar
118ed997adaSBram Moolenaartest_null_list()					*test_null_list()*
119ed997adaSBram Moolenaar		Return a |List| that is null. Only useful for testing.
120ed997adaSBram Moolenaar
121ed997adaSBram Moolenaar
122ed997adaSBram Moolenaartest_null_partial()					*test_null_partial()*
123ed997adaSBram Moolenaar		Return a |Partial| that is null. Only useful for testing.
124ed997adaSBram Moolenaar
125ed997adaSBram Moolenaar
126ed997adaSBram Moolenaartest_null_string()					*test_null_string()*
127ed997adaSBram Moolenaar		Return a |String| that is null. Only useful for testing.
128ed997adaSBram Moolenaar
129ed997adaSBram Moolenaar
1308ed04587SBram Moolenaartest_unknown()						*test_unknown()*
1318ed04587SBram Moolenaar		Return a value with unknown type. Only useful for testing.
1328ed04587SBram Moolenaar
1338ed04587SBram Moolenaartest_void()						*test_void()*
1348ed04587SBram Moolenaar		Return a value with void type. Only useful for testing.
1358ed04587SBram Moolenaar
1368ed04587SBram Moolenaar
137ed997adaSBram Moolenaartest_option_not_set({name})				*test_option_not_set()*
138ed997adaSBram Moolenaar		Reset the flag that indicates option {name} was set.  Thus it
139ed997adaSBram Moolenaar		looks like it still has the default value. Use like this: >
140ed997adaSBram Moolenaar			set ambiwidth=double
141ed997adaSBram Moolenaar			call test_option_not_set('ambiwidth')
142ed997adaSBram Moolenaar<		Now the 'ambiwidth' option behaves like it was never changed,
143ed997adaSBram Moolenaar		even though the value is "double".
144ed997adaSBram Moolenaar		Only to be used for testing!
145ed997adaSBram Moolenaar
146ce90e36fSBram Moolenaar		Can also be used as a |method|: >
147ce90e36fSBram Moolenaar			GetOptionName()->test_option_not_set()
148ce90e36fSBram Moolenaar
149ed997adaSBram Moolenaar
150ed997adaSBram Moolenaartest_override({name}, {val})				*test_override()*
151ed997adaSBram Moolenaar		Overrides certain parts of Vim's internal processing to be able
152ed997adaSBram Moolenaar		to run tests. Only to be used for testing Vim!
153ed997adaSBram Moolenaar		The override is enabled when {val} is non-zero and removed
154ed997adaSBram Moolenaar		when {val} is zero.
155ed997adaSBram Moolenaar		Current supported values for name are:
156ed997adaSBram Moolenaar
157ed997adaSBram Moolenaar		name	     effect when {val} is non-zero ~
158ed997adaSBram Moolenaar		redraw       disable the redrawing() function
159ed997adaSBram Moolenaar		redraw_flag  ignore the RedrawingDisabled flag
160ed997adaSBram Moolenaar		char_avail   disable the char_avail() function
161ed997adaSBram Moolenaar		starting     reset the "starting" variable, see below
162ed997adaSBram Moolenaar		nfa_fail     makes the NFA regexp engine fail to force a
163ed997adaSBram Moolenaar			     fallback to the old engine
164ed997adaSBram Moolenaar		no_query_mouse  do not query the mouse position for "dec"
165ed997adaSBram Moolenaar				terminals
166ed997adaSBram Moolenaar		no_wait_return	set the "no_wait_return" flag.  Not restored
167ed997adaSBram Moolenaar				with "ALL".
168b340baedSBram Moolenaar		ui_delay     time in msec to use in ui_delay(); overrules a
169b340baedSBram Moolenaar			     wait time of up to 3 seconds for messages
1700c0eddd3SBram Moolenaar		term_props   reset all terminal properties when the version
1710c0eddd3SBram Moolenaar			     string is detected
172ed997adaSBram Moolenaar		ALL	     clear all overrides ({val} is not used)
173ed997adaSBram Moolenaar
174ed997adaSBram Moolenaar		"starting" is to be used when a test should behave like
175ed997adaSBram Moolenaar		startup was done.  Since the tests are run by sourcing a
176ed997adaSBram Moolenaar		script the "starting" variable is non-zero. This is usually a
177ed997adaSBram Moolenaar		good thing (tests run faster), but sometimes changes behavior
178ed997adaSBram Moolenaar		in a way that the test doesn't work properly.
179ed997adaSBram Moolenaar		When using: >
180ed997adaSBram Moolenaar			call test_override('starting', 1)
181ed997adaSBram Moolenaar<		The value of "starting" is saved.  It is restored by: >
182ed997adaSBram Moolenaar			call test_override('starting', 0)
183ed997adaSBram Moolenaar
184ce90e36fSBram Moolenaar<		Can also be used as a |method|: >
185ce90e36fSBram Moolenaar			GetOverrideVal()-> test_override('starting')
186ed997adaSBram Moolenaar
187ed997adaSBram Moolenaartest_refcount({expr})					*test_refcount()*
188ed997adaSBram Moolenaar		Return the reference count of {expr}.  When {expr} is of a
189ed997adaSBram Moolenaar		type that does not have a reference count, returns -1.  Only
190ed997adaSBram Moolenaar		to be used for testing.
191ed997adaSBram Moolenaar
192ce90e36fSBram Moolenaar		Can also be used as a |method|: >
193ce90e36fSBram Moolenaar			GetVarname()->test_refcount()
194ce90e36fSBram Moolenaar
195ed997adaSBram Moolenaar
196ed997adaSBram Moolenaartest_scrollbar({which}, {value}, {dragging})		*test_scrollbar()*
197ed997adaSBram Moolenaar		Pretend using scrollbar {which} to move it to position
198ed997adaSBram Moolenaar		{value}.  {which} can be:
199ed997adaSBram Moolenaar			left	Left scrollbar of the current window
200ed997adaSBram Moolenaar			right	Right scrollbar of the current window
201ed997adaSBram Moolenaar			hor	Horizontal scrollbar
202ed997adaSBram Moolenaar
203ed997adaSBram Moolenaar		For the vertical scrollbars {value} can be 1 to the
204ed997adaSBram Moolenaar		line-count of the buffer.  For the horizontal scrollbar the
205ed997adaSBram Moolenaar		{value} can be between 1 and the maximum line length, assuming
206ed997adaSBram Moolenaar		'wrap' is not set.
207ed997adaSBram Moolenaar
208ed997adaSBram Moolenaar		When {dragging} is non-zero it's like dragging the scrollbar,
209ed997adaSBram Moolenaar		otherwise it's like clicking in the scrollbar.
210ed997adaSBram Moolenaar		Only works when the {which} scrollbar actually exists,
211ed997adaSBram Moolenaar		obviously only when using the GUI.
212ed997adaSBram Moolenaar
213ce90e36fSBram Moolenaar		Can also be used as a |method|: >
214ce90e36fSBram Moolenaar			GetValue()->test_scrollbar('right', 0)
215ed997adaSBram Moolenaar
216ed997adaSBram Moolenaartest_setmouse({row}, {col})				*test_setmouse()*
217ed997adaSBram Moolenaar		Set the mouse position to be used for the next mouse action.
218ed997adaSBram Moolenaar		{row} and {col} are one based.
219ed997adaSBram Moolenaar		For example: >
220ed997adaSBram Moolenaar			call test_setmouse(4, 20)
221ed997adaSBram Moolenaar			call feedkeys("\<LeftMouse>", "xt")
222ed997adaSBram Moolenaar
223ed997adaSBram Moolenaartest_settime({expr})					*test_settime()*
224ed997adaSBram Moolenaar		Set the time Vim uses internally.  Currently only used for
225ed997adaSBram Moolenaar		timestamps in the history, as they are used in viminfo, and
226ed997adaSBram Moolenaar		for undo.
227ed997adaSBram Moolenaar		Using a value of 1 makes Vim not sleep after a warning or
228ed997adaSBram Moolenaar		error message.
229ed997adaSBram Moolenaar		{expr} must evaluate to a number.  When the value is zero the
230ed997adaSBram Moolenaar		normal behavior is restored.
231ed997adaSBram Moolenaar
232ce90e36fSBram Moolenaar		Can also be used as a |method|: >
233ce90e36fSBram Moolenaar			GetTime()->test_settime()
234ce90e36fSBram Moolenaar
2354f645c54SBram Moolenaartest_srand_seed([seed])					*test_srand_seed()*
2364f645c54SBram Moolenaar		When [seed] is given this sets the seed value used by
2374f645c54SBram Moolenaar		`srand()`.  When omitted the test seed is removed.
2384f645c54SBram Moolenaar
239ed997adaSBram Moolenaar==============================================================================
2405477506aSBram Moolenaar3. Assert functions				*assert-functions-details*
241ed997adaSBram Moolenaar
242ed997adaSBram Moolenaar
243ed997adaSBram Moolenaarassert_beeps({cmd})					*assert_beeps()*
244ed997adaSBram Moolenaar		Run {cmd} and add an error message to |v:errors| if it does
245ed997adaSBram Moolenaar		NOT produce a beep or visual bell.
246ed997adaSBram Moolenaar		Also see |assert_fails()| and |assert-return|.
247ed997adaSBram Moolenaar
24824278d24SBram Moolenaar		Can also be used as a |method|: >
24924278d24SBram Moolenaar			GetCmd()->assert_beeps()
25024278d24SBram Moolenaar<
251ed997adaSBram Moolenaar							*assert_equal()*
252ed997adaSBram Moolenaarassert_equal({expected}, {actual} [, {msg}])
253ed997adaSBram Moolenaar		When {expected} and {actual} are not equal an error message is
254ed997adaSBram Moolenaar		added to |v:errors| and 1 is returned.  Otherwise zero is
255ed997adaSBram Moolenaar		returned |assert-return|.
256ed997adaSBram Moolenaar		There is no automatic conversion, the String "4" is different
257ed997adaSBram Moolenaar		from the Number 4.  And the number 4 is different from the
258ed997adaSBram Moolenaar		Float 4.0.  The value of 'ignorecase' is not used here, case
259ed997adaSBram Moolenaar		always matters.
260ed997adaSBram Moolenaar		When {msg} is omitted an error in the form "Expected
261ed997adaSBram Moolenaar		{expected} but got {actual}" is produced.
262ed997adaSBram Moolenaar		Example: >
263ed997adaSBram Moolenaar	assert_equal('foo', 'bar')
264ed997adaSBram Moolenaar<		Will result in a string to be added to |v:errors|:
265ed997adaSBram Moolenaar	test.vim line 12: Expected 'foo' but got 'bar' ~
266ed997adaSBram Moolenaar
2677ff78465SBram Moolenaar		Can also be used as a |method|, the base is passed as the
2687ff78465SBram Moolenaar		second argument: >
26925e42231SBram Moolenaar			mylist->assert_equal([1, 2, 3])
27025e42231SBram Moolenaar
27125e42231SBram Moolenaar<							*assert_equalfile()*
272fb517bacSBram Moolenaarassert_equalfile({fname-one}, {fname-two} [, {msg}])
273ed997adaSBram Moolenaar		When the files {fname-one} and {fname-two} do not contain
274ed997adaSBram Moolenaar		exactly the same text an error message is added to |v:errors|.
275ed997adaSBram Moolenaar		Also see |assert-return|.
276ed997adaSBram Moolenaar		When {fname-one} or {fname-two} does not exist the error will
277ed997adaSBram Moolenaar		mention that.
278ed997adaSBram Moolenaar		Mainly useful with |terminal-diff|.
279ed997adaSBram Moolenaar
280e49fbff3SBram Moolenaar		Can also be used as a |method|: >
281e49fbff3SBram Moolenaar			GetLog()->assert_equalfile('expected.log')
282e49fbff3SBram Moolenaar
283ed997adaSBram Moolenaarassert_exception({error} [, {msg}])			*assert_exception()*
284ed997adaSBram Moolenaar		When v:exception does not contain the string {error} an error
285ed997adaSBram Moolenaar		message is added to |v:errors|.  Also see |assert-return|.
286ed997adaSBram Moolenaar		This can be used to assert that a command throws an exception.
287ed997adaSBram Moolenaar		Using the error number, followed by a colon, avoids problems
288ed997adaSBram Moolenaar		with translations: >
289ed997adaSBram Moolenaar			try
290ed997adaSBram Moolenaar			  commandthatfails
291ed997adaSBram Moolenaar			  call assert_false(1, 'command should have failed')
292ed997adaSBram Moolenaar			catch
293ed997adaSBram Moolenaar			  call assert_exception('E492:')
294ed997adaSBram Moolenaar			endtry
295ed997adaSBram Moolenaar
296ed997adaSBram Moolenaarassert_fails({cmd} [, {error} [, {msg}]])			*assert_fails()*
297ed997adaSBram Moolenaar		Run {cmd} and add an error message to |v:errors| if it does
298*9b7bf9e9SBram Moolenaar		NOT produce an error or when {error} is not found in the
299*9b7bf9e9SBram Moolenaar		error message.  Also see |assert-return|.
300*9b7bf9e9SBram Moolenaar
301*9b7bf9e9SBram Moolenaar		When {error} is a string it must be found literally in the
302*9b7bf9e9SBram Moolenaar		first reported error. Most often this will be the error code,
303*9b7bf9e9SBram Moolenaar		including the colon, e.g. "E123:". >
304*9b7bf9e9SBram Moolenaar			assert_fails('bad cmd', 'E987:')
305*9b7bf9e9SBram Moolenaar<
306*9b7bf9e9SBram Moolenaar		When {error} is a |List| with one or two strings, these are
307*9b7bf9e9SBram Moolenaar		used as patterns.  The first pattern is matched against the
308*9b7bf9e9SBram Moolenaar		first reported error: >
309*9b7bf9e9SBram Moolenaar			assert_fails('cmd', ['E987:.*expected bool'])
310*9b7bf9e9SBram Moolenaar<		The second pattern, if present, is matched against the last
311*9b7bf9e9SBram Moolenaar		reported error.  To only match the last error use an empty
312*9b7bf9e9SBram Moolenaar		string for the first error: >
313*9b7bf9e9SBram Moolenaar			assert_fails('cmd', ['', 'E987:'])
314*9b7bf9e9SBram Moolenaar<
315ed997adaSBram Moolenaar		Note that beeping is not considered an error, and some failing
316ed997adaSBram Moolenaar		commands only beep.  Use |assert_beeps()| for those.
317ed997adaSBram Moolenaar
31824278d24SBram Moolenaar		Can also be used as a |method|: >
31924278d24SBram Moolenaar			GetCmd()->assert_fails('E99:')
32024278d24SBram Moolenaar
321ed997adaSBram Moolenaarassert_false({actual} [, {msg}])				*assert_false()*
322ed997adaSBram Moolenaar		When {actual} is not false an error message is added to
323ed997adaSBram Moolenaar		|v:errors|, like with |assert_equal()|.
324ed997adaSBram Moolenaar		Also see |assert-return|.
325ed997adaSBram Moolenaar		A value is false when it is zero. When {actual} is not a
326ed997adaSBram Moolenaar		number the assert fails.
327ed997adaSBram Moolenaar		When {msg} is omitted an error in the form
328ed997adaSBram Moolenaar		"Expected False but got {actual}" is produced.
329ed997adaSBram Moolenaar
33024278d24SBram Moolenaar		Can also be used as a |method|: >
33124278d24SBram Moolenaar			GetResult()->assert_false()
33224278d24SBram Moolenaar
333ed997adaSBram Moolenaarassert_inrange({lower}, {upper}, {actual} [, {msg}])	 *assert_inrange()*
334ed997adaSBram Moolenaar		This asserts number and |Float| values.  When {actual}  is lower
335ed997adaSBram Moolenaar		than {lower} or higher than {upper} an error message is added
336ed997adaSBram Moolenaar		to |v:errors|.  Also see |assert-return|.
337ed997adaSBram Moolenaar		When {msg} is omitted an error in the form
338ed997adaSBram Moolenaar		"Expected range {lower} - {upper}, but got {actual}" is
339ed997adaSBram Moolenaar		produced.
340ed997adaSBram Moolenaar
341ed997adaSBram Moolenaar								*assert_match()*
342ed997adaSBram Moolenaarassert_match({pattern}, {actual} [, {msg}])
343ed997adaSBram Moolenaar		When {pattern} does not match {actual} an error message is
344ed997adaSBram Moolenaar		added to |v:errors|.  Also see |assert-return|.
345ed997adaSBram Moolenaar
346ed997adaSBram Moolenaar		{pattern} is used as with |=~|: The matching is always done
347ed997adaSBram Moolenaar		like 'magic' was set and 'cpoptions' is empty, no matter what
348ed997adaSBram Moolenaar		the actual value of 'magic' or 'cpoptions' is.
349ed997adaSBram Moolenaar
350ed997adaSBram Moolenaar		{actual} is used as a string, automatic conversion applies.
351ed997adaSBram Moolenaar		Use "^" and "$" to match with the start and end of the text.
352ed997adaSBram Moolenaar		Use both to match the whole text.
353ed997adaSBram Moolenaar
354ed997adaSBram Moolenaar		When {msg} is omitted an error in the form
355ed997adaSBram Moolenaar		"Pattern {pattern} does not match {actual}" is produced.
356ed997adaSBram Moolenaar		Example: >
357ed997adaSBram Moolenaar	assert_match('^f.*o$', 'foobar')
358ed997adaSBram Moolenaar<		Will result in a string to be added to |v:errors|:
359ed997adaSBram Moolenaar	test.vim line 12: Pattern '^f.*o$' does not match 'foobar' ~
360ed997adaSBram Moolenaar
36124278d24SBram Moolenaar		Can also be used as a |method|: >
36224278d24SBram Moolenaar			getFile()->assert_match('foo.*')
36324278d24SBram Moolenaar<
364ed997adaSBram Moolenaar							*assert_notequal()*
365ed997adaSBram Moolenaarassert_notequal({expected}, {actual} [, {msg}])
366ed997adaSBram Moolenaar		The opposite of `assert_equal()`: add an error message to
367ed997adaSBram Moolenaar		|v:errors| when {expected} and {actual} are equal.
368ed997adaSBram Moolenaar		Also see |assert-return|.
369ed997adaSBram Moolenaar
37025e42231SBram Moolenaar		Can also be used as a |method|: >
37125e42231SBram Moolenaar			mylist->assert_notequal([1, 2, 3])
37225e42231SBram Moolenaar
37325e42231SBram Moolenaar<							*assert_notmatch()*
374ed997adaSBram Moolenaarassert_notmatch({pattern}, {actual} [, {msg}])
375ed997adaSBram Moolenaar		The opposite of `assert_match()`: add an error message to
376ed997adaSBram Moolenaar		|v:errors| when {pattern} matches {actual}.
377ed997adaSBram Moolenaar		Also see |assert-return|.
378ed997adaSBram Moolenaar
37924278d24SBram Moolenaar		Can also be used as a |method|: >
38024278d24SBram Moolenaar			getFile()->assert_notmatch('bar.*')
38124278d24SBram Moolenaar
382e49fbff3SBram Moolenaar
383ed997adaSBram Moolenaarassert_report({msg})					*assert_report()*
384ed997adaSBram Moolenaar		Report a test failure directly, using {msg}.
385ed997adaSBram Moolenaar		Always returns one.
386ed997adaSBram Moolenaar
387e49fbff3SBram Moolenaar		Can also be used as a |method|: >
388e49fbff3SBram Moolenaar			GetMessage()->assert_report()
389e49fbff3SBram Moolenaar
390e49fbff3SBram Moolenaar
391ed997adaSBram Moolenaarassert_true({actual} [, {msg}])				*assert_true()*
392ed997adaSBram Moolenaar		When {actual} is not true an error message is added to
393ed997adaSBram Moolenaar		|v:errors|, like with |assert_equal()|.
394ed997adaSBram Moolenaar		Also see |assert-return|.
395ed997adaSBram Moolenaar		A value is TRUE when it is a non-zero number.  When {actual}
396ed997adaSBram Moolenaar		is not a number the assert fails.
397ed997adaSBram Moolenaar		When {msg} is omitted an error in the form "Expected True but
398ed997adaSBram Moolenaar		got {actual}" is produced.
399ed997adaSBram Moolenaar
40024278d24SBram Moolenaar		Can also be used as a |method|: >
40124278d24SBram Moolenaar			GetResult()->assert_true()
40224278d24SBram Moolenaar<
403ed997adaSBram Moolenaar
404ed997adaSBram Moolenaar vim:tw=78:ts=8:noet:ft=help:norl:
405