手动启动测试用例(SenTestCase)?在测试之前需要等待一些后台任务



我在后台从磁盘加载一些数据。

我的测试

应该在填充运行时存储后运行,但现在测试运行与我的加载平行,这当然会导致空对象,因此测试失败。

加载数据后有什么方法可以运行测试吗?

首先,尽量减少对同步任务的单元测试。逻辑测试的设计应尽量减少对其他组件的依赖。

也就是说,如果您坚持这样做,您可以构建异步测试,有时有正当理由(只是不经常)。看看SenAsyncTestCase - 它为此类测试提供了许多基类。

我真的可以推荐我开源的项目。你可以像这样编写异步测试。

- (void)testSomethingAsync
{
    __block BOOL jobDone = NO;
    [CEO asyncFireAllEmployes:^{
        jobDone = YES; 
    }];
    WAIT_WHILE(!jobDone, 0.2); // stalls runloop until jobDone is true
}

可在此处获得 https://github.com/hfossli/AGWaitForAsyncTestHelper

只需在测试用例的setUp例程中获取数据即可。

最新更新