繁体   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