我在后台从磁盘加载了一些数据。
我的测试应该在运行时存储填充后运行,但现在测试与我的加载并行运行,这当然会导致空对象,因此测试失败。
加载数据后有什么方法可以运行测试?
我在后台从磁盘加载了一些数据。
我的测试应该在运行时存储填充后运行,但现在测试与我的加载并行运行,这当然会导致空对象,因此测试失败。
加载数据后有什么方法可以运行测试?
首先,尽量减少对同步任务的单元测试。逻辑测试的设计方式应尽量减少对其他组件的依赖。
也就是说,如果您坚持这样做,您可以构建异步测试,有时是有正当理由的(只是不经常这样做)。看看SenAsyncTestCase - 它为此类测试提供了许多基类。
我真的可以推荐我开源的项目。您可以像这样编写异步测试。
- (void)testSomethingAsync
{
__block BOOL jobDone = NO;
[CEO asyncFireAllEmployes:^{
jobDone = YES;
}];
WAIT_WHILE(!jobDone, 0.2); // stalls runloop until jobDone is true
}
只需在setUp
测试用例的例程中获取数据。