Почему этот первый тестовый модуль OCUnit проходит? - PullRequest
0 голосов
/ 29 ноября 2011

Это должно дать сбой, но оно проходит. Таким образом, я предполагаю, что мой синтаксис где-то не так (хотя он строит).

#import <Foundation/Foundation.h>

@interface FirstCocoaLibrary : NSObject

-(int)AddFirstNum:(int) i1 withSecondNum:(int) i2;

@end


#import "FirstCocoaLibrary.h"

@implementation FirstCocoaLibrary

- (id)init
{
    self = [super init];
    if (self) {
        // Initialization code here.
    }

    return self;
}

- (int)AddFirstNum:(int) i1 withSecondNum:(int) i2{

    return i1 + i2;
}

@end

#import <SenTestingKit/SenTestingKit.h>
#import "FirstCocoaLibrary.h"

@interface FirstCocoaLibraryTests : SenTestCase{
    FirstCocoaLibrary *_adder;
}

@end

#import "FirstCocoaLibraryTests.h"

@implementation FirstCocoaLibraryTests

- (void)setUp
{
    // Set-up code here.
    _adder = [[FirstCocoaLibrary alloc] init];
}

- (void)tearDown
{
    // Tear-down code here.

}

- (void)testExample
{
    //STFail(@"Unit tests are not implemented yet in FirstCocoaLibraryTests");
}

- (void)ShouldAdd2Numbers {

    int result = [_adder AddFirstNum:4 withSecondNum:5];
    STAssertEquals(0, result, @"Test Failed at adding", result);
}

@end

Ответы [ 2 ]

3 голосов
/ 29 ноября 2011

OCUnit автоматически запускает только методы, имена которых начинаются с test. Я не думаю, что это проходит; это не работает вообще. Переименуйте ShouldAdd2Numbers в testAddFirstNumWithSecondNum.

Также обратите внимание, что соглашение Obj-C для имен методов и каждого раздела имени метода должно начинаться со строчной буквы. Таким образом, addFirstNum:withSecondNum:

2 голосов
/ 29 ноября 2011

Этот тест, вероятно, вообще не выполняется. Он должен называться testShouldAdd2Numbers

Кстати, ваши методы должны начинаться со строчной буквы;

EDIT

Эта чертова клавиатура медленная. Делай то, что сказал Джош Касуэлл. :)

...