SUnit
SUnitはSmalltalk上で完結しておりSmalltalkのみで試験の記述と実施ができる。 SUnitは試験項目をコードで記述することにより毎回同じ試験ができる。このためSUnitの登場により人がプログラムを操作していたときと比べ正確な単体試験ができるようになった。しかしソースコードを畫く知識が求められるため書けない人を試験担当者できないという弱点も発生した。中核はライブラリーであるが、一般的にはSmalltalk環境ごとのGUIと連動するためのツールキットと共にパッケージにして配布されている。
ただし、実際の試験の実行はGUIで行うため(3)のように明示的なメッセージを書くことは無い。
(4)(5)の#setUpや#tearDownをセレクターを持つメソッドは試験メソッドの前後実行されるメソッドでそれぞれ試験ケースに共通する変数の初期化やファイルの削除などを実行するために使われる。#setUpは試験メソッドの実行前、#tearDownは試験メソッドの実行後に実行される。
(6)(7)の#assert:や#should:raise:は評価メッセージで実行結果を評価し試験の合否を判定する。#assert:は引数がtrueになれば合格とするメッセージで、#should:raise:はshould:の引数として与えたブロックからraise:の引数に指定した例外が発生すれば合格とするメッセージである。なお#assert:には#deny:、#should:raise:には#shouldnt:raise:という評価が逆転したメッセージが存在する。