gpt4 book ai didi

带有 Cedar 的 iOS 测试 Controller

转载 作者:行者123 更新时间:2023-11-28 21:02:55 28 4
gpt4 key购买 nike

我正在尝试使用 Cedar 测试 Controller ,但无法真正理解为什么它不起作用。永远不会显示 Controller ,永远不会调用 viewDidLoad 或 viewDidAppear。这是 Cedar 不应该做的事情还是我的错误?

describe(@"MyController", ^{
__block UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];
__block UINavigationController *root = (UINavigationController *)[[[[UIApplication sharedApplication] delegate]window ]rootViewController];
__block MyViewController *model = [storyboard instantiateViewControllerWithIdentifier:@"MyController"];

[root pushViewController:model animated:YES];

it(@"should test something", ^{
expect(model.content).to(be_truthy);
});
});

最佳答案

单元测试同步运行。任何动画或可以动画的东西在正常的单元测试中都不起作用,因为测试将在更改发生之前完成。

看起来您正在尝试测试 View Controller 显示时的状态。在那种情况下,我们做的不是推送它,而是加载它:

[model loadViewIfNeeded];

这将从 Storyboard加载 View ,然后调用它的 -viewDidLoad。然后您应该能够测试它的状态。

我不使用 Cedar,但我确实有一个基于 OCUnit 的 View Controller 测试驱动开发的截屏视频:How to Do UIViewController TDD

(顺便说一下,“模型”是一个非常容易混淆的 Controller 名称。)

关于带有 Cedar 的 iOS 测试 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14466407/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com