gpt4 book ai didi

ios - ReactiveCocoa : How do you unit test a RACCommand?

转载 作者:行者123 更新时间:2023-12-01 16:31:04 24 4
gpt4 key购买 nike

MVVM pattern , ViewModel发个RACCommandView使用 RACCommand 绑定(bind)按钮,但是如何测试RACCommand ?

我有两个方面需要测试:

  • 在某些情况下,RACCommand应该启用
  • 触发该命令并查看 ViewModel当命令触发
  • 时完成它的工作

    如何测试这些案例?

    最佳答案

    我正在使用 Kiwi用于测试,与 ReactiveCocoa 一起使用非常简单.在您的情况下,Kiwi's async testing派上用场,例如使用 shouldEventually期望值发生变化。例如。一个 view从执行信号的副作用中隐藏。

    [[expectFutureValue(theValue(view.hidden)) shouldEventually] beYes];

    关于启用的信号,您也可以订阅该信号。所以你创建一个订阅 block beforeAll :
    void (^buttonEnabledBlock)(NSNumber *) = ^(NSNumber *enabled) {
    _blockEnabled = enabled.boolValue;
    };

    现在在您的测试用例中订阅命令的启用信号:
    [subject.myButtonCommand.enabled subscribeNext:buttonEnabledBlock];

    然后你可以 expectFutureValuetheValue(_blockEnabled)最终 beYesbeNo .

    您也可以 stub命令的 signalBlock RACCommand 的附加类别界面并在需要时做一些魔术。

    关于ios - ReactiveCocoa : How do you unit test a RACCommand?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31634934/

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