【问题标题】:iOS unit test: How to unit test firstResponderStatusiOS 单元测试:如何对 firstResponderStatus 进行单元测试
【发布时间】:2015-08-12 05:26:05
【问题描述】:

我正在编写一个测试来确认方法是否将焦点转移到下一个文本字段。我尝试了iOS unit test: How to set/update/examine firstResponder? 的代码。但它失败了。

- (void)testFocusMovedToYearField {
  UIWindow *window = [[UIWindow alloc] init];
  [window addSubview:self.dateCell.txtDay];
  [window addSubview:self.dateCell.txtYear];   
  [self.dateCell completionBlockHelper];
  [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:5.0]]; 
  XCTAssertTrue([self.kioskDateCell.txtYear isFirstResponder]);
}

函数completionBlockHelper 包含使txtYear 成为第一响应者的代码。

任何建议都会有所帮助。

【问题讨论】:

  • 这对我有用。你确定self.dateCell.txtYear 不是nil 吗?你确定completionBlockHelper 被调用了吗?尝试逐步完成测试以尝试找出发生了什么。
  • 是的,很确定 self.dateCell.txtYear 不是 nil 并且 completionBlockHelper 也会被调用。我还尝试用[self.dateCell.txtYear becomeFirstResponder] 替换[self.dateCell completionBlockHelper] 只是为了检查它是否有效但没有运气。
  • 有什么更新吗?我遇到了同样的问题。尝试放置一个假的虚拟视图无济于事

标签: ios unit-testing xctest first-responder


【解决方案1】:

窗口需要成为关键窗口。在 Swift 中:window.makeKeyAndVisible()

【讨论】:

    猜你喜欢
    • 2012-01-08
    • 2019-11-02
    • 1970-01-01
    • 1970-01-01
    • 2021-10-07
    • 1970-01-01
    • 1970-01-01
    • 2020-07-10
    • 1970-01-01
    相关资源
    最近更新 更多