我希望使用OCMock编写单元测试覆盖
MYImageLoader
类。其中一个测试可以确保下载图像时,将文件从NSURLSessionDownloadTask
回调返回的位置复制到临时位置。在编写良好的单元测试时,我不想测试方法的具体实现细节。因此,我在MYImageLoader
类的构造函数中传递了NSFileManager
类的模拟对象。但是,有几种同样可能用于复制文件的NSFileManager
方法:- (BOOL)copyItemAtURL:(NSURL *)srcURL toURL:(NSURL *)dstURL error:(NSError **)error;
- (BOOL)moveItemAtURL:(NSURL *)srcURL toURL:(NSURL *)dstURL error:(NSError **)error;
- (BOOL)copyItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error;
- (BOOL)moveItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error;
那么这里的最佳实践是什么呢?我不希望我的单元测试决定我应该在方法实现中使用哪些方法,只是为了确保测试通过。
OCMock
中是否有类似“期望这个或这个或这个”的功能呢?
或者您可以提供一个不同的方法吗?
NSFileManager
,而不是创建一个实际的文件,因为只是想看看是否被要求这样做。如果在每个测试中都创建一个实际的文件,我担心我的测试速度会变慢。 - dariaa