0

我正在使用 KIWI 测试我的 iOS 应用程序。我想问一下如何检查UIViewController中是否存在元素,但是,我在实现文件中声明了元素,而不是在头文件中。

那可能吗?

#import "Kiwi.h"

SPEC_BEGIN(HomeViewController)
    describe(@"HomeViewController", ^{

        context(@"when instantiated", ^{
            __block HomeViewController *controller = nil;

            beforeEach(^{
                controller = [[HomeViewController alloc] init];
            });

            it(@"it should have been instantiated", ^{
                [controller shouldNotBeNil];
            });

            it(@"it should have UITableViewController", ^{
                /*
                    WHAT TO DO HERE
                 */
            })
        });
    });

SPEC_END
4

1 回答 1

0

基本上,您想检查某个 UI 元素是否出现在屏幕上。

首先,这不是单元测试最适合的,单元测试应该检查某些代码在尽可能多的输入组合下是否按预期运行。

其次,如果您真的想对此进行测试,您可以进行一些安排,例如HomeViewController+Internal.h在放置“私人”成员的位置添加标题。或者,如果表视图控制器被声明为属性,您可以向生成的 getter 询问该属性(例如:[controller usersTableViewController]如果属性名称为usersTableViewController

第三,请记住,像这样的测试往往会使重构应用程序代码变得困难,因为重构代码可能会导致重构受影响的单元测试,这可能不好玩并且容易出错。

于 2015-04-02T05:11:36.100 回答