2003/06/17
前回、前々回と説明の都合で思いっきり嘘を書いてあります(^^;
あれ?と思ったことはありませんでしたか? もし思わなかったとしたら、Objective-CもTest Firstも理解できていないことになりますので、勉強しなおしてください(_ _)
- (BOOL) isEqual: (id)another
{
if (value == [another intValue]) {
return TRUE;
} else {
return FALSE;
}
}
|
- (void) testIntValue
{
SmallInteger* one = [SmallInteger initWithInt:1];
SmallInteger* two = [SmallInteger initWithInt:2];
[self assertTrue:(1 == [one intValue])];
[self assertTrue:(2 == [two intValue])];
}
|
- (int) intValue
{
return value;
}
|
ここで「終わった」と思ってしまっては、またundoにだまされちゃいますよ。ほら、もう1つテストしてないでしょ?
Objective-Cには、private methodはありません。ヘッダで宣言しなくてもメソッドを定義できます。こうすると、表向きメソッドを見えないようにすることはできます。でも、動的にメソッドをサーチすれば呼び出せちゃいます。したがって、C++だったら、privateメンバにアクセスするくらいでテストするわけないのに、Objective-Cではテストが必要になってくるわけです。
もちろん、private methodであることにしてテストしないという選択もありでしょう。