问题标签 [spyon]

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

angular - 由于构造函数中存在方法调用,无法进行角度单元测试

由于组件构造函数中存在方法,无法运行角度单元测试。

//我的规范文件

当我尝试为 testMethodNonc() 运行单元测试时,函数 testMethod() 也与此方法一起运行,因为它存在于构造函数中。是否可以通过模拟函数 testMethod 单独执行 testMethodNonc()?

0 投票
0 回答
983 浏览

javascript - 使用茉莉花进行窗口位置搜索的Angular 7模拟和返回值

使用 Jasmine 对 Angular 7 进行单元测试。我需要window.location.search在 Jasmine 中设置值。

我尝试了以下场景。

如何设置window.location.search值?

0 投票
1 回答
705 浏览

angular - Testing angular auth guard redirection

I have an Angular authenticated guard

And I have these tests with a mock window I am injecting so that my test windoe doesn't redirect and so I can check to see if the href is set

The expect(redirectSpy).toHaveBeenCalledWith('/login'); always fails saying it was never called at all. Same with just expect(redirectSpy).toHaveBeenCalled(); - What am I doing wrong here? I want to be able to test this redirection, but I don't want my karma test browser to actually redirect.

(FYI: I need to use window.location.href instead of the angular router so we can direct users to a different non-angular application that handles the login)

0 投票
1 回答
1250 浏览

node.js - 如何使用 jest.spyOn 函数来测试另一个文件中的函数

我正在尝试运行测试用例来测试我的 Web 服务的入口点,我在运行单元测试时遇到了一个问题。无法监视异步函数,因为它是属性而不是函数。

我正在尝试测试是否在 server.js 文件中调用了 run 函数

入口文件有点像下面。

测试文件如下

测试应该可以正常运行,但是在运行此测试时出现以下错误

0 投票
1 回答
1212 浏览

angular - 如何在 Function 内部 SpyOn 函数并返回 Fake 值

这个问题似乎是相同的,但绝对不是重复的。

在我的一个函数中,我正在调用this.cordovaFile.readAsArrayBuffer(this.cordovaFile.dataDirectory, key)

cordovafile.readAsArrayBuffer()从 ipad 文件存储中读取数据,但在单元测试中我不能这样做,因为它在浏览器中运行,所以我使用 SpyOn 来获取假值,我很难做到这一点。

下面有人可以帮我吗?

这就是我要编写的单元测试的方式,我不知道如何 SpyOnthis.cordovaFile.readAsArrayBuffer(this.cordovaFile.dataDirectory, key)并返回值

this.cordovaFile.readAsArrayBuffer()应该返回类似下面的假值

0 投票
1 回答
40 浏览

angularjs - 如何监视也被属性引用的函数

鉴于此代码:

这个测试代码:

但我收到此错误消息: Expected spy function(){return i} to have been called。

所以我猜只有this.getAnimal = getAnimal被监视的,而不是函数。我怎样才能解决这个问题?

0 投票
1 回答
860 浏览

javascript - 在调用链更深时不调用 Jest spyOn

我以为我可以spyOn在我的模块中使用一个函数,但它没有注册为被调用,即使它显然是。这是一个归结为sample.js

这是它的笑话测试./__tests__/sample.test.js

测试失败:

预期的模拟函数已被调用,但未被调用。

如果我监视它,它可以正常工作,func1但为什么不使用调用的函数func1呢?

0 投票
1 回答
33 浏览

angular - spyOn 响应返回为空

当监视此服务调用时,数据返回为空。类型转换似乎不适用于 resp。

0 投票
0 回答
2747 浏览

reactjs - 将 Jest 更新到 24.9 后未使用 React useRef 挂钩的 Jest 间谍

当我使用 jest 22.4 时,我进行了如下测试

这适用于 jest 22.4,不适用于 jest 24.9。我不确定那个版本是问题,因为我们的团队提升了一些东西。我将在下面粘贴我们当前和旧的包 json devdependencies 区域。

旧的 package.json 开发依赖项

新的 package.json 开发依赖项

0 投票
1 回答
350 浏览

angular - Jasmine 单元测试 spyOn 在回调函数中不起作用

我正在使用ag-grid,我需要在一段代码上编写 Jasmine 单元测试。这段代码使用我们调用的类调用我们的休息服务器RestService,我想用它 spyOn来模拟这些调用和响应。在我使用的代码的其他地方,spyOn(RestService, 'function').and.returnValue()它完全没有问题。此代码由 自动调用,ag-grid并且它位于具有getRows函数的数据源对象中。在这里它调用api返回下一页数据。该信息可以在https://www.ag-grid.com/javascript-grid-infinite-scrolling/上找到

我有一个spyOnspyOn(restService, 'fetchNextRows').and.returnValue(Observable.of(something))但它不会为此工作。它尝试实际调用其余服务并失败,因为它在单元测试期间没有运行。有谁知道解决方法?

我的 spec.ts 使用: