问题标签 [ts-mockito]

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 回答
37 浏览

angular - Angular 在测试中操纵服务值

我试图在我的测试中操纵服务返回值并将该值附加到 components 字段。

所以我myService在内部模拟Test1并操纵它的值,true以便它总是返回true。通过调用fixture.detectChanges();,我调用了应该返回的this.myService.getProperty('param');内部并设置了also的值。但事实并非如此。该字段的值仍然是。当然失败了。PageComponenttruemyFieldtruefalseTest1

我不明白会发生什么。为什么我可以true在测试中定义返回值并通过它使组件值?

测试

页面组件

我的服务

0 投票
1 回答
507 浏览

javascript - 如何用 Jest 测试 void 方法

我想测试记录器是否正确递增(使用 Jest)。查看下面的代码意味着我想检查是否调用了增量(1)(即 void 的内容myMethod)。

我尝试了三种不同Option的 s。每个Option结果都在消息中

实际上要么Option 1Option 2就是我想要的。因为Option 3我只是尝试过,因为我认为这肯定会奏效。

有人可以帮我吗?

提前致谢。

0 投票
0 回答
116 浏览

ts-mockito - 未定义 IntersectionObserver

我正在使用 ts-mockito 和 jsdom-global 将单元测试添加到使用 IntersectionObserver 的项目中,但不幸的是我遇到了以下错误:

ts-mockito 是否提供任何模拟或覆盖 IntersectionObserver 的方法?

0 投票
1 回答
448 浏览

typescript - 使用 ts-mockito 和 Typescirpt 模拟 Express 请求

是否可以在打字稿中使用ts-mockito模拟来自Express的类请求?

我尝试了以下

但在说明时出现错误reqType 'Request' is missing the following properties from type 'Request<ParamsDictionary>': get, header, accepts, acceptsCharsets, and 73 more.

0 投票
0 回答
32 浏览

angular - 测试来自 ts-mockito 模拟服务的 HttpErrorResponse

我在我的服务类中的组件规范测试错误场景中遇到问题。使用 ts-mockito 模拟服务类。

服务等级:

我已经将在我的组件测试中不起作用的逻辑简化为这个简单的复制(在我的真实测试中,组件调用的是服务而不是测试代码,但这重现了我正在经历的事情):

但是这里的输出是“成功”,而不是“错误”。如何设置来自模拟的可观察响应以触发订阅中的错误条件?

我也尝试过when(mockTestService.getData()).thenReject(httpErrorResponse),但这会引发未处理的承诺拒绝。

0 投票
1 回答
357 浏览

angular - ts-mockito 验证不正确

嗨,我被困在测试上的时间比我想承认的要长。但我需要帮助我的测试。我在控制台记录了我想要测试的类和我需要测试的代码流。但是,当我在调用的函数上调用veryfy 时,ts-mockito 返回它没有被调用,即使我有证据证明我的日志一定是这样。


在我的课堂上:

问题是我可以看到这两个日志,所以如果我没记错的话,它应该被调用吧?

0 投票
1 回答
168 浏览

node.js - 使用 ts-mockito 模拟 WebAPI 接口

我正在为使用浏览器 WebAPI 接口的类编写单元测试。
我使用 ts-mockito 来模拟界面(在我的例子中是WebGL2RenderingContext)。

当我运行测试时,Node throwsReferenceError: WebGL2RenderingContext is not defined 这是可以理解的,因为测试是在 NodeJS 环境下运行的,而不是浏览器,所以类/接口不存在。

有什么方法可以让 NodeJS 环境了解 WebAPI 接口,以便可以模拟?

注意:因为它是一个单元测试,它应该在真正的浏览器上运行。
jsdom似乎是一个可能的解决方案,但我不知道如何用 ts-mockito 模拟它。


以下片段说明了我正在尝试做的事情:

使用 mocha 和命令运行mocha --require ts-node/register 'test.ts'

0 投票
1 回答
75 浏览

angular - 我怎样才能抑制 Api 错误并返回一个值?

404从我的 API 收到未使用的电子邮件和已使用的 204 电子邮件。现在我想使用/和将其转换为boolean(真/假)。rxjspipecatchError

现在在我的单元测试中,我有这样定义的未使用电子邮件的情况

然后它尝试像这样编写我的测试。

现在测试失败了,因为HttpErrorResponse抛出了 an:

所以Observable抛出了我认为我遇到的错误catchError。我的测试设置是jest,我不想(也不能)切换到 TestBed。

0 投票
1 回答
32 浏览

angular - 模拟服务不会在角度测试中禁用按钮?

我正在使用角度材料步进器在我的组件中导航,有以下按钮:

下面是我的 stepper.component.html 代码 <button [disabled]="myService.disableNextButton(stepper.selectedIndex)"> Next

然后我有一个使用 behaviorSubject 来存储 productId 的服务:

我正在使用 JEST 测试和 ts-mockito 来模拟我的服务,如下所示:

在我的测试中,我有以下内容:

问题是当我使用原始服务时,该按钮在启动时被禁用,但是当我模拟该服务时,它并没有禁用它。知道有什么问题吗?

0 投票
1 回答
131 浏览

typescript - 如何在异步函数中测试 await toPromise()?(.toPromise() 不是函数错误)

基于这个问题,我写了这个测试:

我正在测试的功能是:

该函数运行正常,但测试失败:

TypeError: this.productService.getProductByCode(...).toPromise 不是函数

就像我没有正确地嘲笑服务一样吗?

productService.getProductByCode() 方法返回 Product 的 Observable:

(product) 方法创建了一个产品的 Observable 对象。方法 .toPromise() 是 Observable 的一个方法,它从 observable 返回一个承诺。这里是导入: