问题标签 [jasmine-marbles]

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 投票
3 回答
65 浏览

angular - 如何在方法内测试订阅

考虑这个角度分量:

我正在尝试编写一个茉莉花测试来确认它paymentModalService.open()被称为:

然而,显然从未调用过 open 方法。

在断言该方法已被调用之前,有什么方法可以等待可观察的冷测试完成发射?

我试过使用fakeAsynctick但似乎也没有帮助。我意识到它可以of()代替 a 使用TestColdObservable,但我希望对可观察行为进行更精细的控制。我真的不打算完成getStatus()observable。

0 投票
2 回答
222 浏览

angular - 使用茉莉弹珠进行单元测试

我正在尝试使用jasmine-marbles但出现错误进行简单测试

这是我的测试代码:

这是我得到的错误:

如果我使用jest框架,上面的代码可以工作,但我想让它与 Angular 设置附带的默认测试框架一起工作

感谢您对解决此错误的任何帮助谢谢

0 投票
1 回答
50 浏览

angular - 测试值被 Angular 中的可观察响应改变

如果我想测试以下代码

对于 this.even 的值,在我使用 jasmine-marbles 的单元测试中是这样的

显然这不起作用,因为 this.even 不是可观察的,而冷需要类型 TestColdObservable。有没有办法使用 jasmine marbles 或其他基本测试框架来测试 this.even 随着时间的变化?

0 投票
0 回答
26 浏览

typescript - NgRx如何用外部函数测试效果?

我想让使用 Jasmine 和 Marbles 更轻松地为我的应用程序效果创建测试。
为此,我想创建几个函数以在每个测试中导入,以减少代码重复并提高测试的可读性。

所以让我们假设我有这三个文件:

效果文件

测试文件

函数文件

对我来说,这看起来应该可以正常工作,但是测试失败并显示以下消息:

但是,如果我像这样更改我的测试文件:

或者像这样:

测试现在将毫无问题地通过。

所以我想做的是让函数testEffect正常工作,如果可能的话,改变函数effectsTestingMOduleConfiguration这样就不需要手动传递provideMockActions(() => actions)了。

0 投票
0 回答
36 浏览

angular - 需要在 withLatestFrom 中使用 jasmine marble 创建单元测试用例

我对使用 jasmine-marble 进行单元测试完全陌生。

我有一个组件,代码如下:

我的规格:

运行 ng test 时出错:

0 投票
1 回答
37 浏览

angular - 茉莉花冷大理石与 toPromise - 永无止境的等待

我有一个 debService,它通过简单的 HttpClient 请求调用后端 API。它返回一个可观察的。现在,在 AppComponent 中,我正在调用 debService 的方法来获取债务。我想确保,当债务被提取时,名为 logGetDebtAttempt 的方法也被调用。

这就是为什么我写了这样的测试:

运行测试时,等待 component.getDebt(); 永远不会结束,它会产生超时。

有人可以解释为什么会这样吗?

0 投票
1 回答
218 浏览

rxjs - 使用 toBeObservable() 时,Jasmine 测试在 RxJS 7 中总是失败

我已经更新了我的依赖项,现在遇到了这个错误消息:

测试非常简单:

它可能与弃用通知有关,但我只是使用toBeObservable()最新版本的jasmine-marbles包,看不到自定义参数。我也不明白为什么Notification不是一种Object.

版本:

  • rxjs:7.5.2
  • 茉莉花核:4.0.0
  • 茉莉花弹珠:0.8.4
  • 业力茉莉花:4.0.1

该脚本适用于 rxjs 6.6.7。

0 投票
0 回答
56 浏览

angular - 如何使用 Jasmine Marbles 测试永无止境的流?

在我的 Angular 服务中,我有一些代码执行轮询以显示微调器,直到满足特定条件:

现在,我想为此添加一个单元测试,并且我正在使用 Jasmine 弹珠,但我不确定那里会有多少帧,我无法让单元测试正常工作。

如何用大理石语法表达“间隔”?我知道我们可以做一些事情,比如cold('1000ms (a|)',{a:true})它等待 1000 毫秒,发出“真”并同时完成。

我假设这个测试会通过但它失败了:

更简单的版本

我如何编写茉莉弹珠以使此测试通过?

0 投票
0 回答
7 浏览

jasmine - 茉莉花弹珠

$.length = 2 to equal 1茉莉弹珠测试中的含义是什么。另外,我收到如下错误。如何解释这个错误?

0 投票
1 回答
60 浏览

angular - 如何在大理石测试中从服务中模拟 observable

我想测试一个包含我的逻辑的 Angular 服务。我将简化我的案例以使其简单明了:

我有我想要测试的 logic$,它绑定到 data$,另一个 observable

我希望能够在我的测试中模拟数据并查看我的逻辑是否按预期运行

我收到以下错误:

据我所知,显然我的模拟不起作用。logic$ 的长度为 1,数据仅发出 '' (由 behaviorSubject 发出) .

有没有办法正确替换 observable 来测试服务中的逻辑?