可以从XCTest中的其他testing用例中调用testing用例

我构build了一组XCTestCase方法来运行我的核心数据模型中的代码。 我打算从其他testing方法中调用一些testing方法,这样我可以看到不同的数据组合,同时保持代码最小。 我无法想象为什么这不起作用,但我想知道世界在想什么,这是否被认为是好的做法。

以下是它的样子:

@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]; } 

它不被认为是testing互相依赖的好习惯。 他们应该能够自己执行。

问题是,如果testing依赖于对方,可能很难确定哪里出了问题。

所以,unit testing应该是自包含的,尽可能容易理解。 事实上,我们通常会放弃一些我们通常会遵守的做法,例如重复代码,以达到这个自成一体,易于理解的目标。 看看这个DAMP vs DRYtesting答案 。