Hatena::ブログ(Diary)

リンゴの水やり?(はてな) このページをアンテナに追加 RSSフィード

myPhotoViewer irPanel ioTouch free iRubyKaigi2009 ioTouch free iUnitTest
はてなスターカウンター

2012-02-23 木

[][][]SurikaeをNSObjectにCategoryで実装してみました

今日Mochaを見てたら、NSObjectでやれば良い事に気が付いて、一夜にして昨日のやり方はdeprecatedになりました。

文字列Class、methodとも指定するのはアイディアとしては良かったのですが、しっくりしてなかったので、このやり方でスッキリしました。

- (void)timeShouldBe1Second
{
    __block int second = 0;

    [NSDate surikaeWithSelector:@selector(date)
        surikae:^()
        {
            return [NSDate dateWithYear:2012 month:2 day:17 hour:0 minute:0 second:second];
        }
        context:^()
        {
            [self.stopWatch start];
            second = 1;
            [self.stopWatch stop];
            ASSERT_EQUAL_DOUBLE(1.0, self.stopWatch.time);
        }
    ];
}

Instance methodはInstanceに対して行います。

  NSDate *date = [NSDate date];
  [date surikaeWithSelector:@selector(description)
      surikae:^()
      {
          return @"NSDate object";
      }
      context:^()
      {
          ASSERT_EQUAL(@"NSDate object", date.description);
      }
  ];

ここまでくると、このインスタンスだけ変えたいとかやりたくなりそうですが、ここまでにしときます。

Surikae - wiki

Surikae

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/gutskun/20120223/1330006412
リンク元