可以从XCTest中的其他测试用例中调用测试用例

时间:2014-02-22 02:34:40

标签: ios xcode5 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];
}

1 个答案:

答案 0 :(得分:3)

测试相互依赖并不是一种好的做法。他们应该能够以自己的方式执行。

问题在于,如果测试相互依赖,则很难找出出错的地方。

因此,单元测试应该是自包含的,并且尽可能易于理解。实际上,我们经常放弃我们通常会遵循的一些做法,例如使用代码重复,以实现这种自包含,易于理解的目标。看一下这个DAMP vs DRY tests answer