状態遷移のテストがしたくて、いろいろ調べた。
あるobjectに状態を与えたい時はこう書くらしい。
"This is a spec to check status of Flags" ^
p^
"When BlackQuill.main accept '--help' should" ^ //状態1
"'BlackQuill.Switches.stdin' must be False" ! isStdinFalse ^
"'BlackQuill.Switches.stdout' must be False" ! isStdoutFalse ^
"'BlackQuill.Switches.force' must be False" ! isForceFalse ^
"'BlackQuill.Switches.output' must be False" ! isOutputFalse ^
"'BlackQuill.Switches.verbose' must be False" ! isVerboseFalse ^
"'BlackQuill.Switches.encFlag' must be False" ! isEncFlagFalse ^
endp^
"BlackQuill.main should" ^
"BlackQuill is destroyed" ;init //初期化して状態2に移る
"When BlackQuill.main accept '--h'" ;accepthSw
"'BlackQuill.Switches.stdin' must be False" ! isStdinFalse ^
"'BlackQuill.Switches.stdout' must be False" ! isStdoutFalse ^
"'BlackQuill.Switches.force' must be False" ! isForceFalse ^
"'BlackQuill.Switches.output' must be False" ! isOutputFalse ^
"'BlackQuill.Switches.verbose' must be False" ! isVerboseFalse ^
"'BlackQuill.Switches.encFlag' must be False" ! isEncFlagFalse ^
end
状態変化というか、返り値チェックしない関数は;で書いて^がいらないらしい。ドキュメントの中かなり探したけどどこかに書いてあるのかしら?
ggってもよくわからず。結局コンパイラが教えてくれた。
0 件のコメント :
コメントを投稿