戯言

自社サービスを開発、運営している会社でスクラムマスターをやっている人の戯言です。

OCUnit(SenTestingKit)でTDDしようと思ったらいきなりハマった

テスト駆動開発入門

テスト駆動開発入門

  • 作者: ケントベック,Kent Beck,長瀬嘉秀,テクノロジックアート
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2003/09
  • メディア: 単行本
  • 購入: 45人 クリック: 1,058回
  • この商品を含むブログ (159件) を見る


せっかくなのでテスト駆動開発入門をObjective-Cで写経しようと思ったら、4章でいきなりハマってしまった。

- (void)testMultiplication
{
  Dollar *five = [[Dollar alloc] initWithAmount:5];
  Dollar *product = [five times:2];
 
  // 本当はこんな風に書きたいが、失敗する
  //STAssertEqualObjects([[Dollar alloc] initWithAmount:10], product, @"aaaaa");    
 
  // このテストも当然ながら両方通らない
  Dollar *a = [[Dollar alloc] init];
  Dollar *b = [[Dollar alloc] init];
  STAssertEqualObjects(a, b, @"aaaaa");
  STAssertEquals(a, b, @"aaaaa");
  
  // NSStringは大丈夫・・
  STAssertEqualObjects([[NSString alloc] init], [[NSString alloc] init], @"bbb");
 
  STAssertEquals([product amount], 10, @"aaaaa"); 
  product = [five times:3];
  STAssertEquals([product amount], 15, @"aaaaa");
}


GHUnitならできるのだろうか?