- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
无论我如何编写 KIFTestScenario 或 KIFTestStep,运行我的 KIF 目标时,它们都会返回以下错误:
12:20:58.434 - Test that a user can successfully dismiss the welcome screens
12:24:53.208 - FAIL (209.11s): Tap screen at point "{10, 10}"
12:24:53.209 - FAILING ERROR: Error Domain=KIFTest Code=0 "Step threw exception:
*** -[__NSArrayM insertObject:atIndex:]:
object cannot be nil" UserInfo=0x842c1e0 {NSLocalizedDescription=Step threw exception: *** -[__NSArrayM insertObject:atIndex:]:
object cannot be nil}
12:24:53.210 - END OF SCENARIO (duration 223.62s)
按照建议,我包含了我正在使用的代码:
TestController.m
#import "TestController.h"
#import "KIFTestScenario+Additions.h"
@implementation TestController
- (void)initializeScenarios;
{
[self addScenario:[KIFTestScenario scenarioToLogIn]];
}
@end
KIFTestScenario+Additions.m
#import "KIFTestScenario+Additions.h"
@implementation KIFTestScenario (Additions)
+ (id)scenarioToLogIn
{
KIFTestScenario *scenario = [KIFTestScenario scenarioWithDescription:@"Test that a user can successfully dismiss the welcome screens"];
KIFTestStep *step = [KIFTestStep stepToTapScreenAtPoint:CGPointMake(10.0f, 10.0f)];
[scenario addStep:step];
return scenario;
}
@end
我已经完成了调试器,我添加到场景中的 KIFTestStep 是非零的,并且是一个有效的 KIFTestStep。
有没有人以前遇到过这个问题或有任何修复的想法?
最佳答案
此异常是在您自己的代码中引发的。
查看 KIF 源代码,在 two places 中调用了 insertObject:atIndex:
: 在 addStep:
和 KIFTypist
中。
您的异常发生在步骤的执行过程中,因此它不在 addStep:
中,并且您没有使用键盘方法,因此未使用 KIFTypist
.
可能发生的情况是,此时 KIF 正在点击屏幕,而您的手势识别器或回调监听器正在触发异常。这通常会使您的应用程序崩溃,但 KIF 的异常处理程序捕获了它并报告了测试失败。您可以使用 breakpoint exception 在引发异常的地方捕获异常并查明是什么原因造成的。
值得注意的是,屏幕坐标 10, 10
通常无法点击,因为它位于状态栏内。要在 10, 10
点按您的应用,您应该传递 10, 30
。
更新
根据我们在评论中的讨论,在 windowsWithKeyWindow
中引发了异常,其中键窗口为 nil
。在典型应用程序中,keyWindow
为 nil
的唯一情况是在您调用应用程序委托(delegate)中的 [self.window makeKeyAndVisible]
之前。在调用 KIF 的 startTestingWithCompletionBlock:
方法之前,您需要确保完成所有设置逻辑(包括制作关键窗口)。
关于ios - 所有 KIF 测试步骤都抛出相同的错误,我做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18538958/
我是一名优秀的程序员,十分优秀!