ios - 如何在 RxSwift 观察者中测试私有函数?
问题描述
observable.subscribe(onNext: { _ in
somePrivateFunction()
})
什么是 RxSwift 方法来测试当observable
接收到事件时somePrivateFunction
实际是否被调用?由于订阅和函数在同一个类中,我无法模拟它。
解决方案
您需要检查是否有任何逻辑放置在可以阻止调用此函数的订阅中。如果有 - 可能值得将其提取到参数(例如过滤器),以便逻辑可以成为流本身的一部分。
我假设 observable(源)是从另一个组件注入/重定向的(如果不是,很可能应该是)。要模拟您可以使用的信号TestableObservable
,您可以在此处阅读更多信息:http: //adamborek.com/rxtests-rxactionsheet/
最后但并非最不重要的一点 - 你需要确定什么样的行动somePrivateFunction()
。如果它设置了一些外部值 - 那么您可以从该函数测试该传出连接。如果它设置了一些内部标志 - 您可以测试该标志的值是否已更改。
推荐阅读
- python - 裁剪数组中的值的更有效方法?
- c# - MSBuild 为后台任务生成无效的 AppxManifest.xml 文件
- laravel - Laravel:auth.php 中的存储密钥是什么?
- spring - Spring Data REST 重命名资源
- excel - 列出对象表命名范围
- node.js - 如何在 NodeJS 中将 JSON 传递给服务器?
- java - 在 Spring 中使用 @QueryParam
- javascript - 从另一个页面返回时如何强制 HTML 重新加载
- shell - 如何将 perl 转换为 shell 脚本?
- python - Dash plotly 自定义地图