Почему нужно писать юнит-тесты, пример

No comments on Почему нужно писать юнит-тесты, пример

Written by

in

Юнит тесты реально спасают, я вот написал тест:

- (void)testDeviceTypeItemInit
{
    NSDictionary *dic = @{@"name":@"wifi_relay",
                          @"needsControlCenter":@(YES),
                          @"needsControlDevice":@(NO)};
    
    REDeviceTypeItem *deviceTypeItem = [[REDeviceTypeItem alloc] initWithDic:dic];
    XCTAssertNotNil(deviceTypeItem);
    XCTAssert([deviceTypeItem.name isEqualToString:@"wifi_relay"]);
    XCTAssert([deviceTypeItem.localizedName isEqualToString:@"Умное Wi-Fi реле"]);
    XCTAssertTrue(deviceTypeItem.needsControlCenter);
    XCTAssertFalse(deviceTypeItem.needsControlDevice);
}

и он не прошел. Оказалось, что я забыл проставить boolValue тут:

- (instancetype)initWithDic:(NSDictionary *)dic
{
    self = [super init];
    
    if (self)
    {
        _name = dic[@"name"];
        _localizedName = NSLocalizedString(_name, nil);
        _needsControlCenter = [dic[@"needsControlCenter"] boolValue];
        _needsControlDevice = [dic[@"needsControlDevice"] boolValue];
    }
    
    return self;
}

Что интересно, без boolValue никаких warnings и тем более ошибок сборки.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *