diff runtime/doc/eval.txt @ 7277:6600871bb38c v7.4.944

commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Nov 29 17:35:35 2015 +0100 patch 7.4.944 Problem: Writing tests for Vim script is hard. Solution: Add assertEqual(), assertFalse() and assertTrue() functions. Add the v:errors variable. Add the runtest script. Add a first new style test script.
author Christian Brabandt <cb@256bit.org>
date Sun, 29 Nov 2015 17:45:04 +0100
parents c590de398af9
children b5e9810b389d
line wrap: on
line diff
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 7.4.  Last change: 2015 Sep 19
+*eval.txt*	For Vim version 7.4.  Last change: 2015 Nov 29
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -1379,6 +1379,15 @@ v:errmsg	Last given error message.  It's
 	:  ... handle error
 <		"errmsg" also works, for backwards compatibility.
 
+					*v:errors* *errors-variable*
+v:errors	Errors found by assert functions, such as |assertTrue()|.
+		This is a list of strings.
+		The assert functions append an item when an assert fails.
+		To remove old results make it empty: >
+	:let v:errors = []
+<		If v:errors is set to anything but a list it is made an empty
+		list by the assert function.
+
 					*v:exception* *exception-variable*
 v:exception	The value of the exception most recently caught and not
 		finished.  See also |v:throwpoint| and |throw-variables|.
@@ -1737,6 +1746,9 @@ arglistid( [{winnr}, [ {tabnr}]])
 				Number	argument list id
 argv( {nr})			String	{nr} entry of the argument list
 argv( )				List	the argument list
+assertEqual( {exp}, {act})  	none    assert that {exp} equals {act}
+assertFalse( {actual})		none    assert that {actual} is false
+assertTrue( {actual})		none    assert that {actual} is true
 asin( {expr})			Float	arc sine of {expr}
 atan( {expr})			Float	arc tangent of {expr}
 atan2( {expr}, {expr})		Float   arc tangent of {expr1} / {expr2}
@@ -2154,6 +2166,31 @@ argv([{nr}])	The result is the {nr}th fi
 <		Without the {nr} argument a |List| with the whole |arglist| is
 		returned.
 
+							*assertEqual()*
+assertEqual({expected}, {actual})
+		When {expected} and {actual} are not equal an error message is
+		added to |v:errors|.
+		There is no automatic conversion, the String "4" is different
+		from the Number 4.  And the number 4 is different from the
+		Float 4.0.  The value of 'ignorecase' is not used here, case
+		always matters.
+		Example: >
+	assertEqual('foo', 'bar')
+<		Will result in a string to be added to |v:errors|:
+	test.vim line 12: Expected 'foo' but got 'bar' ~
+
+assertFalse({actual})					*assertFalse()*
+		When {actual} is not false an error message is added to
+		|v:errors|, like with |assertEqual()|..
+		A value is false when it is zero. When "{actual}" is not a
+		number the assert fails.
+
+assertTrue({actual})					*assertTrue()*
+		When {actual} is not true an error message is added to
+		|v:errors|, like with |assertEqual()|..
+		A value is true when it is a non-zeron number.  When {actual}
+		is not a number the assert fails.
+
 asin({expr})						*asin()*
 		Return the arc sine of {expr} measured in radians, as a |Float|
 		in the range of [-pi/2, pi/2].