问题标签 [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 回答
841 浏览

swift - RxTest - 如何比较事件因为 Void 不是 Equatable

ViewModel 有一个绑定到intap事件的输入(观察者)。这个观察者的类型是。UIButtonUIViewControllerAnyObserver<Void>

在我的单元测试中,这是我所期望的:

我的测试观察者定义是:

断言声明:

我收到以下错误:

表达式类型 '()' 在没有更多上下文的情况下是模棱两可的

在 Rx 中,Void事件是正常的,要正确测试 ViewModel,需要比较它们。eg .next(0, ()), .completed(0)etc.Void不是Equatable,而且它没有意义Equatable。但是,我需要断言事件是.nextor.error还是.completed。我如何断言那部分?

0 投票
1 回答
1302 浏览

ios - 在 RxSwift 单元测试中模拟和验证结果

我刚刚开始学习 RxSwift 并尝试构建一个示例应用程序来练习这些概念。

我编写了一个 QuestionViewModel,它从 QuestionOps 类加载问题列表。QuestionOps 有一个 getQuestions 函数,它返回 Single<[Question]>。

我面临的问题是,如何在测试 QuestionViewModel 时模拟 QuestionOps 类的行为。

我创建了这个 MockQuestionOps 用于测试目的:

在我的测试用例中,我正在执行以下操作:

0 投票
1 回答
134 浏览

ios - 如何在 RxSwift 观察者中测试私有函数?

什么是 RxSwift 方法来测试当observable接收到事件时somePrivateFunction实际是否被调用?由于订阅和函数在同一个类中,我无法模拟它。

0 投票
1 回答
77 浏览

swift - 两个来源的 RxSwift TestScheduler

我想为两个不同的来源发出两个不同的信号,但我在第 29 行遇到 Thread 1: EXC_BAD_ACCESS (code=1, address=0x0)RxSwift/Event.swift崩溃:return "next(\(value))"

这是我的简化代码:

当我删除locationsFactory.didReceiveRegionlocationsFactory.location它工作。

我可以创建两个不同的调度程序的 observables 吗?

0 投票
1 回答
116 浏览

ios - 如何使用 RxWebKit 测试 WKWebView?

我正在尝试为我的应用程序编写一些使用 rxSwift 的测试。特别是,我想测试,编写单元测试,webview。我正在使用 RxWebKit 来获取一些属性的 observables,比如 navigationCompleted 或 NavigationFailed 等等。例如:webView.rx.didFailNavigation.asDriver()。这些 observables 作为我的 viewModel 的输入。但是我不确定如何编写这些测试来模拟例如失败的导航以及这种可观察的发射。在特定情况下,我想模拟 a Driver<(webView: WKWebView, navigation: WKNavigation, error: Error)>(与关联的类型相同webView.rx.didFailNavigation.asDriver())。我知道要模拟发射,我需要创建一个调度程序并调用该createHotObservable方法,但是在特定情况下我要传递什么Recorderd.next(150, element)作为元素来模拟 webview 的失败?有人可以给我一个简单的例子吗?

0 投票
2 回答
385 浏览

ios - RxTest 仍在使用 libswiftXCTest.dylib

Disallowed framework在提交到 App Store 时遇到“”问题。问题如下

" ITMS-90726: Disallowed frameworks - Your app submission contains usages of the restricted framework libswiftXCTest.dylib. Remove these, rebuild and resubmit."

经过研究,我发现 RxTest 框架仍在使用受限框架libswiftXCTest.dylib

Xcode 版本:11.6

RxSwift 版本:5.1.1

  1. 我该如何解决这个问题?
  2. RxTest 解决了这个问题吗?
0 投票
1 回答
192 浏览

swift - 将 createColdObservable 用于 RxTest 时 XCTAssertEqual 失败

我的测试代码中有一个奇怪的问题。我想BehaviourRelay在我的视图模型中测试从 status.fetching.saving. 我有以下测试代码:

我的Status枚举是这样的:

当我运行测试时,我收到以下消息:XCTAssertEqual failed: ("[next(fetching) @ 0, next(saving) @ 10]") is not equal to ("[next(fetching) @ 0, next(saving) @ 10]")

显然这些事件是等价的,那么为什么会失败呢?

0 投票
0 回答
53 浏览

android - 使用 Rx 和 GIPHY 测试 ViewModel

在编写单元测试并试图弄清楚如何测试使用 Giphy API 的 ViewModel 方面,我是一个完整的初学者。

这是我的视图模型:

这是我的测试:

这是 RxImmediateSchedulerRule:

第一个测试通过了。当我运行第二个测试时,我得到了这个:

apiClient 是 GPHContent 中的一个属性,在运行测试时显然未初始化,我不知道如何解决这个问题。无法按照当前的方式测试我的视图模型吗?我需要更改什么才能对其运行测试?我将不胜感激任何指导或建议。

0 投票
1 回答
39 浏览

ios - 我们如何测试生成随机状态的类,哪些不能两次生成相同的状态?

我们有三个状态。我们如何测试(使用单元测试)我们的类,它每 5 秒生成一次随机状态,并且不能连续两次生成相同的状态?我们的随机生成器类的代码如下 ` final class StateRandomGenerator: RandomGeneratorProtocol { private var sourceObservable: Disposable? private(set) var previousValue: Int? var generatedValue: PublishSubject = PublishSubject()

} `

0 投票
0 回答
44 浏览

xcode - 在特定构建配置中嵌入/排除某些 SPM 库

目前我们的项目正在使用通过 SPM 添加的包含一些禁止符号的库,例如RxTest,因此在将构建上传到 AppStore Connect 之前,我们必须在Target->中手动删除这些库Frameworks and Libraries,但是这样我们无法将上传变成自动化过程。

有没有办法将这些库配置为仅嵌入在某些构建配置中,例如Debug但不是Release?或者为了达到同样的目的,有没有删除特定库的命令?