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