Test a function: Difference between revisions

→‎Insitux: inclusion
(→‎{{header|Raku}}: use `done-testing` and Template:Out)
(→‎Insitux: inclusion)
Line 896:
->
</pre>
 
=={{header|Insitux}}==
It is possible to mock any built-in or user-defined function, and assert values are truthy. Testing [[Palindrome_detection#Insitux|Insitux's Palindrome detection entry]].
<syntaxhighlight lang="insitux">(var palindrome? (comp (filter letter?) lower-case (= (reverse %))))
 
;Arrange
(var calls [])
(function record f
(fn (var! calls (append f))
(... (unmocked f) args)))
 
(mock comp (record comp)
filter (record filter)
letter? (record letter?)
lower-case (record lower-case)
= (record =)
reverse (record reverse))
 
(var sentence "In girum imus nocte et consumimur igni.")
 
;Act
(var result (palindrome? sentence))
 
(unmock comp filter letter? lower-case = reverse)
 
;Assert
(assert result)
 
(var occurred (freqs calls))
(assert (= (len sentence) (occurred letter?))) ;letter? is called (len sentence) times
(assert (... = 1 (map occurred [filter lower-case reverse =]))) ;other functions are called only once</syntaxhighlight>
 
=={{header|J}}==
112

edits