【问题标题】:XCTest: how can I tell which XCTestExpectation invoked 'fulfill'?XCTest:我如何判断哪个 XCTestExpectation 调用了“履行”?
【发布时间】:2016-11-14 18:01:09
【问题描述】:

我正在测试一个有委托的类。委托当然是测试类,从委托方法的实现我称之为不同的期望:

- (void)mySuccess {

        [self.successExpectation fulfill];

}

- (void)myFail:(NSError *)error {

    [self.failExpectation fulfill];

}

我如何从测试类中得知哪个期望称为“满足”?

【问题讨论】:

    标签: class xctest xctestexpectation


    【解决方案1】:

    这不是应该使用期望的正确方式。您应该排队等待某事发生,然后可能会或可能不会实现。如果未满足您的期望,则测试将失败,这意味着您无需跟踪是否满足了“失败”或“成功”的期望。您可以从单个期望中得出成功或失败,因此您应该以这种方式使用期望,如果您的代码可以这样做的话。

    例如,您的 mySuccess 方法应根据您的期望调用 fulfill,但 myFail 不应执行任何操作(导致您的期望未实现)和/或引发错误或 XCTFail()。

    【讨论】:

    • 好吧,我想验证在失败的情况下委托方法 myFail 实际被调用。无论如何,我知道我必须有点创意。谢谢!
    • 在这种情况下,只需摆脱 mySuccess 期望,让您的文本仅基于 myFail 期望失败或通过。 :)
    • 我不同意。如果 failExpectation 被反转,这将是对期望的有效使用。
    猜你喜欢
    • 2019-10-08
    • 1970-01-01
    • 2020-11-11
    • 1970-01-01
    • 1970-01-01
    • 2020-07-15
    • 2011-05-03
    • 1970-01-01
    • 2013-10-09
    相关资源
    最近更新 更多