问题标签 [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 投票
3 回答
44381 浏览

jasmine - Jasmine spyOn 带有特定参数

假设我有

这对我的用例来说太笼统了。任何时候我们打电话

我想设置一个 spyOn,以便根据参数获得不同的返回:

有什么建议么?

0 投票
1 回答
1531 浏览

angularjs - Jasmine Js - 控制器初始化期间的 SpyOn Fakecall

我已经看到了该问题的一组重复项,但无法解决该问题。

我有一个控制器,在控制器初始化期间,首先调用 fetchtemplate(),然后调用我的模拟 fetchtemplate()。

如何在控制器初始化期间停止调用实际(控制器)fetchtemplate()?我的意图是在我的规范中模拟函数 fetchtemplate()。请看看我的规范 -

我曾尝试将 spyOn 放在this.init()给出错误的 spyOn 之前,因为当时fetchtemplate()不存在 spyOn。

我的控制器代码结构看起来像 -

我得到的结果是 - 首先是控制台项“控制器的功能”,然后是使用模拟功能执行规范。我希望模拟函数在没有控制器函数执行的情况下执行

0 投票
1 回答
7897 浏览

javascript - 业力错误 - 预期未定义的定义

我想对我的控制器进行单元测试。我从expect API 的基本测试断言开始。但是我在条件检查中模拟范围方法时面临挑战。我收到一个undefined错误,因为它在范围内不可用,只有全局logout()方法可用。

我尝试将localStorageServiceusing模拟spyOn为 true 以满足条件,但这仍然无济于事。任何解决方案都会对我启动有很大帮助。

控制器:

业力:

0 投票
1 回答
1181 浏览

javascript - 使用 Jasmine 模拟 Firebase 调用

我正在寻找对 firebase 数据库的 spyOn 调用。我有一个包装 firebase 调用的 FireFunc 文件。但是,当我使用 spyOn 检查方法时,它会返回常规结果。这里发生了什么?

这是我的代码(js/services-fb-functions.js)

0 投票
1 回答
603 浏览

javascript - spyon 不适用于非 angularjs 环境中的嵌套函数

我在监视从我的 javascript 模块中的另一个函数调用的函数时遇到问题(没有 angularJS)

这是javascript模块:

我的测试是:

我运行命令:

结果是:

如果我在 AngularJS 控制器中进行相同的测试,它将使用 $scope 而不是 myApp

有什么帮助吗?

0 投票
1 回答
2667 浏览

javascript - Angular2 Unit Testing SpyOn with Karma and Jasmin

I'm facing some weird issue with a test suite I set up.

Template :

HomeComponent :

The test :

I get an error output on : Expected false to be true.

BUT, if I comment the spy and the last expect, it works.

Do you have any idea about what I am doing wrong ?

Thanks

M

0 投票
1 回答
1223 浏览

javascript - Jasmine spyOn 以及一般如何使用间谍

我从 JS 单元测试开始,很难弄清楚如何使用 Jasmine 间谍创建有意义的测试。

使用上面我创建的测试摘录作为示例,我看不出这是一个有用的测试,因为我对 getTotal 的调用是硬编码在规范中的。但与此同时,我想确保传递的参数是一个数组,而不是其他类型……它的硬编码我确信它是错误的。

有人可以就我应该如何思考/处理这种类型的测试场景提供一些指导吗

0 投票
1 回答
2658 浏览

unit-testing - Angular2最终版本:单元测试下的注入服务方法返回未定义

我正在尝试在一个组件上编写一些单元测试,将一些服务注入其中,以从服务器加载数据。数据通过 OnInit() 方法加载到此组件中。我正在尝试该服务方法使用 spyOn 返回一些虚拟数据。以下是单元测试设置 -

以下是我正在单元测试的组件类 -

我收到以下错误 -

在相同的单元测试下,很少有其他测试工作正常,它们不依赖于注入的服务。在测试由服务设置的属性时获得“未定义”。有人可以帮助我在这里做错了吗?

谢谢

0 投票
1 回答
8973 浏览

angularjs - 角单元测试 spyOn().and.callthrough 不调用实际功能

我是 Angular 中 Jasmine 单元测试的新手。

我目前正在测试一个服务,它有一个名为loadSomething(id)的函数,并且我在其中添加了一个 console.info。

我的服务:

这是我的测试(规格)文件:

所以,我在网上看到 SpyOn 的 callthrough 方法调用了 ACTUAL 函数。但是,当我使用期望语句(语句 1)运行测试时,会调用 console.info 消息(工作正常)。另一方面,当我注释掉语句 1 并取消注释 SpyOn(statement 2) 时,我不再收到 console.info 消息。

我预计会发生完全相反的情况。我在这里理解错了吗?

(其余代码工作正常,无论是规范文件还是实际服务,我只是没有真正了解这个具体的东西)

0 投票
2 回答
1356 浏览

jasmine - 是否可以在没有方法的情况下使用 spyOn()?

我是茉莉花和间谍的新手,希望你能指出正确的方向。

我有一个我想用单元测试覆盖的事件监听器:

总体思路是监视“displayComputerSelection”函数。

it ("should call fn displayComputerSelection on continueButton click", function(){ spyOn(displayComputerSelection); continueButton.click(); expect(displayComputerSelection).toHaveBeenCalled();

由于间谍的基本结构是spyOn(<object>, <methodName>)我得到回应No method name supplied。我试过用 jasmine.createSpy 进行试验,但无法使其工作。我将如何替代预期的方法?