[英]OK to call test cases from within other test cases in XCTest
我正在構建一組XCTestCase方法,以圍繞核心數據模型執行代碼。 我打算從其他測試方法中調用某些測試方法,以便在將代碼保持在最低限度的同時,看到不同的數據組合。 我無法想象為什么這行不通,但是我想知道世界在想什么,這是否被認為是好的做法。
如下所示:
@interface sessionTests : XCTestCase
@property (strong) Model *model;
@end
- (void)setUp
{
[super setUp];
_model = [[Model alloc]init];
}
- (void) testValue1
{
_model.value = 1;
XCTAssertTrue(_model.value == 1, @"model.value is not 1");
}
- (void) testValue2
{
_model.value = 2;
XCTAssertTrue(_model.value == 2, @"model.value is not 2");
}
- (void) testStringHello
{
_model.str = @"Hello";
XCTAssertTrue([_model.str isEqualToString:@"Hello"], @"model.str is not Hello");
}
- (void) testHello1
{
[self testValue1];
[self testStringHello];
}
- (void) testHello2
{
[self testValue2];
[self testStringHello];
}
測試之間相互依賴不是很好的做法。 他們應該能夠自己執行。
問題是,如果測試相互依賴,可能很難查明哪里出了問題。
因此,單元測試應該是自包含的,並且應該盡可能容易理解。 實際上,為了達到這個獨立的,易於理解的目標,我們通常會放棄一些通常可能會遵循的實踐,例如代碼重復。 看看這個DAMP vs DRY測試答案 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.