【发布时间】:2023-03-10 05:04:01
【问题描述】:
假设我正在为视图控制器上的 tableView:cellForRowAtIndexPath: 委托方法编写单元测试。根据我传入的索引路径,此方法可能会返回几种不同的单元格配置。
我可以轻松地断言 cell.textLabel.text 属性。但是我如何断言cell.imageView.image 属性包含正确的图像?图像或 imageView 都没有(公共 API)属性,我可以使用它来找出图像名称或文件名。
我想出的最好的方法是创建smallest possible valid .png(使用[UIImage imageWithData:],所以我在单元测试中不会触及磁盘)并断言我从cell.imageView.image得到的字节数组是我的预计。我创建了一个OCHamcrest matcher 来使它更好一点,但这是一种不令人满意且不灵活的方法。
有人有更好的主意吗?
【问题讨论】:
-
图片是从项目还是网页加载?
-
来自项目。如果我想对下载的图像进行断言,我会在进行下载的类前面放置一个外观,并在测试中对其进行模拟。
标签: ios objective-c unit-testing ocmockito