Параметризованный тест iOS Kiwi типа NUnit
Есть ли способ параметризации теста с киви?
Если вы знакомы с NUnit, у него есть функция запуска теста с параметрами (см. http://www.nunit.org/index.php?p=testCase&r=2.5).
2 ответа
В итоге я создал макрос, который генерирует if(..., ^{ });
Это покажет правильное сообщение об ошибке, если тест не пройден, но вы не можете отладить:( .
Вот пример того, как это выглядит:
let(_userModel, ^id{
return [[MyUserModel alloc] init];
});
#define email_should_be_valid(email) \
it(@ #email " should be valid", ^{\
[_userModel setEmail:email];\
[[theValue([_userModel validate:nil]) should] beTrue];\
});
email_should_be_valid(@"example@dd.m")
email_should_be_valid(@"example.example@dd.x")
email_should_be_valid(@"example@dd.com")
#undef email_should_be_valid
Я не буду отмечать этот ответ как правильный, надеюсь, кто-то придет с лучшим решением для этого.
Есть один способ, который работает для меня.
В принципе,
Определите свой собственный блок в тестовом файле, который получает ваши параметры
typedef void(^TestCount)(INT count);
Создать блок с соответствующими тестами
TestCount testCount = ^(INT count){ [[someObject shouldNot] beNil]; [[someObject should] have:count] rows]; };
Выполняйте параметризованный блок везде, где вам это нужно, я обычно делаю это внутри его блока
context(@"when adding object", ^{ beforeAll(^{ [someObject addObject:anotherObject]; }); it(@"it should have 1 object", ^{ testCount(1); }); });
надеюсь, это поможет