问题标签 [rxtest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2144 浏览

ios - RxTest:架构 x86_64 和 arm64 的未定义符号

我正在尝试从第 16 章运行以下测试:使用 Raywenderlich RxSwift书的RxTest 进行测试:

但我在模拟器上得到这个错误:

架构 x86_64 的未定义符号:“RxCocoa.DriverSharingStrategy 的类型元数据”,引用自:TestingTests.TestingViewModel.testColorNameIsRayWenderlichGreenWhenHexStringIs006636() -> () in TestingViewModel.o“RxCocoa.DriverSharingStrategy 的协议见证表:RxCocoa 中的 RxCocoa.SharingStrategyProtocol”,引用来自:TestingTests.TestingViewModel.testColorNameIsRayWenderlichGreenWhenHexStringIs006636() -> () in TestingViewModel.o "RxCocoa.SharedSequence.asObservable() -> RxSwift.Observable",引用自:TestingTests.TestingViewModel.testColorNameIsRayWenderlichGreenWhenHexStringIs006636() -> () in TestingViewModel.o ld:未找到架构 x86_64 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

iPhone 6s 上的这个:

架构 arm64 的未定义符号:“RxCocoa.DriverSharingStrategy 的类型元数据”,引用自:TestingTests.TestingViewModel.testColorNameIsRayWenderlichGreenWhenHexStringIs006636() -> () in TestingViewModel.o“RxCocoa.DriverSharingStrategy 的协议见证表:RxCocoa 中的 RxCocoa.SharingStrategyProtocol”,引用来自:TestingTests.TestingViewModel.testColorNameIsRayWenderlichGreenWhenHexStringIs006636() -> () in TestingViewModel.o "RxCocoa.SharedSequence.asObservable() -> RxSwift.Observable",引用自:TestingTests.TestingViewModel.testColorNameIsRayWenderlichGreenWhenHexStringIs006636() -> () in TestingViewModel.o ld:未找到架构 arm64 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

不幸的是,Raywenderlich 的论坛中没有对此问题的支持。

0 投票
1 回答
1459 浏览

swift - iOS RxSwift - 使用 RxTest 和 TestScheduler 进行测试不会结束/终止测试用例

我试图了解如何正确使用TestSchedulerfrom RxTest 4.2for RxSwift 4.2

如何正确创建 TestScheduler 并传递事件,这些事件将在所有事件执行后终止调度程序?

下面的代码在启动测试调度程序时进入无限循环。因为它保持同步循环,所以我没有机会从测试中停止调度程序

我已将发布范围缩小到TestScheduler. 订阅处置似乎有问题

0 投票
1 回答
1335 浏览

ios - 如果 subscribeOn 背景,RxSwift TestScheduler 不起作用

我有模拟交互器和路由器,用于对演示者演示者方法进行单元测试:

并测试

结果是空的,

只有当我从 presenterMethod 中删除这些行时,此测试才能正常工作

我尝试使用 XCTestExpectation 并在 do(onNext:{}) 块中完成并获得相同的结果,仅在没有 subscribeOn 背景的情况下工作。方法在设备和模拟器上正常工作,presenterMethod 在开关上触发并发出正确的事件。应如何编写此测试以与 SubscribeOn 背景一起使用?

0 投票
1 回答
857 浏览

ios - 在 RxSwift 中测试 BehaviorSubject/Relay

我在测试 BehaviorRelay 时遇到问题。以下最小代码将 observable 绑定到 BehaviorRelay,但在测试时,测试不会结束并挂起 - observable 不断发出事件,因为它以Observable.timer. 当摆脱该bindRx方法并仅测试可观察对象时,它可以正常工作。但我想正确地测试课程——这有意义吗?

我该如何做这项工作?

0 投票
1 回答
526 浏览

mvvm - 测试 ViewState 的 PublishSubject

我正在尝试测试我的 ViewModel 的主要功能。重要的步骤是测试加载状态完成。但可以肯定的是,为了更好的测试,测试所有状态可能会很有趣。

我正在阅读很多关于 RxTest 和 RxBlocking 的帖子和信息,但我无法测试这个模块。如果有人可以帮助我,那就太好了!

目标是能够在调用 viewmodel.requestData() 之后测试所有 ProductsViewState

0 投票
1 回答
576 浏览

unit-testing - 在 RxSwift 中测试 ViewModel

我想在我的一个 ViewModel 中执行测试,其中包含一个名为“nearByCity”的 BehaviorRelay 对象,该对象绑定到名为“isNearBy”的 BehaviorRelay。这就是我的视图模型的样子。

我要执行的测试是实际验证当字符串被接受时,布尔值也会根据函数 setupBinders() 发生变化。

任何想法?

谢谢

0 投票
1 回答
1076 浏览

swift - 触发一个事件并等待多个事件 RxTest

这是我第一次使用RxTest,我正在努力如何执行以下方法:

我在 viewModel 中创建了一个 Publish Subject 来通知视图何时应该显示加载器。

一切正常,除了我不知道如何使用 RxTest 框架对其进行测试。

我试图使用调度程序和冷可观察但无法使其工作。

我想拥有的:

  1. 使用调度程序将 .next(10, ()) 发送到触发器。
  2. 以某种方式记录 isLoading 的事件并断言先为真然后为假的相等。像这样:[.next(10, true), .next(20, false)]。

也许,我这样做的 isLoading 方式,它是不可测试的。但似乎它正在通过输出输出,我认为也许有某种方式。

非常感谢,如果有不清楚的地方,请随时编辑或指导我提出更好的问题。非常感激。

0 投票
1 回答
107 浏览

swift - 如何断言使用最新文本输入的可观察对象的输出

我的视图模型上有一个属性:

我想断言在设置isValid有效输入时设置了正确的状态。

我的测试在下面通过,但这感觉不是测试这种情况的正确方法。

理想情况下,我想从我的字符串 as 开始"",然后像输入它们一样传入值,这样我就可以断言默认状态已设置然后更改。

我还发现这些行:

有点“hacky”。

0 投票
1 回答
352 浏览

swift - 无法访问 xctest 中的 toBlocking()

我正在尝试编写测试用例并尝试访问返回单个对象的方法。为此,我想使用 toBlocking 但我无法访问它并收到以下错误:

“Single<[Property]>”(又名“PrimitiveSequence>”)类型的值没有成员“toBlocking”

以下是我的代码

已导入以下框架:

0 投票
1 回答
488 浏览

swift - `tearDown` 调用是必要的吗?

有事考虑我很久。假设我们已经编写了测试类:

是否tearDown有必要要求清洁目的?

为什么我认为没有必要:

  • 在每个下一个测试用例setUp重置一切之前。
  • 当测试BearerTokenManagerTests结束时,一切都应该解除分配

为什么我不确定

  • 假设“当测试BearerTokenManagerTests结束时,一切都应该解除分配”可能是错误的
  • 我担心RxScheduler副作用
  • 我还不知道的东西

有人可以分享他们的经验吗?你清理里面的东西tearDown吗?重置属性是否setUp足够?