OCUnitTesting を始めたばかりです。私のコードが間違っているとは思いませんが、問題はおそらく途中でどこかで犯した小さな間違いです..関数があります
- (BOOL)tooManyCouplesForER:(NSMutableArray *)startfield
{
NSLog(@"Size %i", [startfield count]);
if ([startfield count] > 7) {
return true;
} else{
return false;
}
}
私の ViewController 内StartfieldTableViewController
。
プロジェクトに UnitTests を含めましAppTests.h
た。
#import "StartfieldTableViewController.h"
と
@property (strong, nonatomic) StartfieldTableViewController *start;
でAppTests.m
私はテストを書きました
- (void)testTooManyCouplesForER
{
NSMutableArray *testField = [[NSMutableArray alloc] initWithObjects:@"1", @"1", @"1", @"1", @"1", @"1", @"1", @"1", @"1", @"1", nil];
BOOL sum = [self.start tooManyCouplesForER:testField];
NSLog(@"BOOL = %@\n", (sum ? @"YES" : @"NO"));
STAssertTrue(sum, @"This should have returned true, but it returned false");
}
したがって、10 個の要素を持つ配列を指定したため、テストに合格することが期待されます。失敗します。だから私は NSLog を作成しましたが、テストでは実際には NO ですが、実行時に関数をテストすると、まったく同じ testField-array が使用されます。これは true です。
助けてくれてありがとう。