私は Objective-C を初めて使用し、TestDrivenDevelopment からすぐに始めようとしています。少なくともテストに合格すると、本当に安心できるからです。
その前に、Java でいくつかのチュートリアルを作成し、TDD について少し理解しました。Brett Schucherts Video-Tutorialsでは、完全な RPNCalculator のコーディングを段階的に進めており、彼が実際に動いているところを見て学ぶための金鉱です。
コードの重複を減らすために、たとえば、次のような素晴らしいことがあります。
@Before
public void init() {
/* Stuff that which will be set up before the call of each test method/*
}
これは、Java の TestClass にある各テストの前に呼び出されます。
これをObjective-C + Xcodeで実現したい。Xcode 4.3 (最新バージョン) を使用していることと、組み込みの TestFramework を使用していることに言及する必要があります。
私が探しているものに近づいたWebで見つけた唯一のものは、SOに関するこの回答でした。
残念ながら、説明されている方法を再現することはできません。最小限の実行可能な例および/または初心者のためのより詳細な説明は素晴らしいものであり、高く評価されます!
ところで、下手な英語でごめんなさい。語学はまだまだ勉強中。:-)
編集:
これは、機能しない最小限の例です。おそらく、誰かが何が悪いのか教えてくれるでしょう。board
Xcodeは、テスト メソッドの本体内を認識できないようです。
#import <SenTestingKit/SenTestingKit.h>
@interface ABoardShould : SenTestCase
@end
#import "ABoardShould.h"
@implementation ABoardShould
- (void)setUp
{
[super setUp];
int rowCount = 6;
int columnCount = 7;
Board *board = [[Board alloc] initWithShapeRowCount:rowCount andColumnCount:columnCount];
}
- (void)tearDown
{
// Tear-down code here.
[super tearDown];
}
- (void)testHaveItsShapeSetWhenInitialised {
STAssertEquals([board rowCount], rowCount, @"");
STAssertEquals([board columnCount], columnCount, @"");
}
- (void)testHaveTheDimensionsOfItsBoardMatchTheGivenShape {
NSMutableArray *expectedFields = [[NSMutableArray alloc] initWithCapacity:columnCount*rowCount];
for(int i=0; i < (rowCount*columnCount); i++) [expectedFields addObject: [NSNumber numberWithInt: 0]];
STAssertEquals([expectedFields count], [[board fields] count], @"");
}