簡體   English   中英

單擊確定可以從XCTest中的其他測試用例中調用測試用例

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM