问题标签 [angular-mock]
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.
angularjs - 角度测试失败“minErr”
我无法弄清楚我在这个测试中做错了什么。这是我对该项目的第一次测试。
这是输出:
angularjs - 如何检查位置是否已更改和控制器是否已加载
我正在尝试为执行 POST 然后更改页面的控制器编写单元测试。如何检查路径是否已加载以及该路径的控制器是否已加载?
karma-runner - browserify/karma/angular.js “TypeError: Cannot read property '$injector' of null”当第二个测试使用“angular.mock.inject”时,“currentSpec”为空
我有一个 Angular.js 应用程序,并且正在尝试将它与 Browserify 一起使用。该应用程序有效,但我也想运行测试,我有两个使用 karma 运行的 jasmine 测试。我使用 browserify 让我可以访问 angular.js 和 angular-mocks.js 以及测试中的其他测试装置。
版本是: -
如果我单独运行测试(通过注释 karma.conf 文件中的一个或另一个),它们都可以正常工作。(耶!)
但是,如果我同时运行它们,我会收到此错误
查看 angular.mocks.js 的第 2271 行它读取
很明显 currentSpec 现在不知何故为空。
当我在第二次测试中调用“angular.mock.inject”时,我已将问题隔离开来。
如果我将其注释掉,它会起作用,但显然我不能在我的 gridUtilService 中运行测试。
有谁知道如何使用 karma 和 browserify 运行两个(或更多:-) angular-mock jasmine 测试?
下面是我的测试,karma.conf 文件。Angular 服务在部署时可以工作,但出于这个目的,它们可以简单地成为什么都不做的愚蠢服务。
业力.conf: -
src/test/services/SettingUtilServiceTest.js:
src/test/services/GridUtilServiceTest.js:
如果您需要访问角度设置,我可以提供它(使用 browserify 的 require() 函数拆分为多个文件并使用 gulp 构建......但正如我所说的应用程序运行正常并且只有在有两个测试时测试才会失败,所以我认为问题在于 karma-jasmine 和 angular-mocks 或覆盖currentSpec
变量。
如果有人知道如何在没有错误消息的情况下将我的角度测试拆分为多个测试(我不想要一个整体的角度测试),我们将不胜感激。谢谢。
angularjs - 如何对多模块角度产品进行单元测试
我有一个 Angular 项目,其中包含多个用于分离项目逻辑的模块。显然,这些模块中有很多依赖于项目中定义的其他模块。
例如,我有一个名为“myapp.shared.mixpanel”的模块,其中包含一个名为 mixpanelService 的服务,用于发送跟踪事件。还有另一个名为“myapp.feature”的模块依赖于“myapp.shared.mixpanel”,因此它可以访问mixpanelService。
当我在“myapp.feature”模块中测试控制器时,我加载了模块:
但这依赖于“myapp.shared.mixpanel”。
有没有办法阻止这个模块的“真实”版本作为依赖项加载,而是加载依赖模块的“空”版本,我可以稍后添加模拟服务/控制器/等?
javascript - AngularJS:$httpBackend 只模拟一些请求
我使用 ngMock 模块来模拟几个请求,如下所示:
但是,加载模块似乎希望您模拟所有请求。因此,如果我执行除我嘲笑的请求之外的任何其他请求,我会收到“意外请求”错误。
我该如何配置它,以便它只拦截我明确模拟的请求,并传递其他所有内容?
regex - AngularJS:$httpBackend 正则表达式模式来传递对特定 URL 模式的请求
我ngMockE2E
用来模拟我的一些服务。我想通过请求/app
中的所有请求。
如何在正则表达式中指定此条件?例如app/assets/server/a.json
,不应模拟此 URL,它必须通过。我尝试了以下代码,但没有奏效。
$httpBackend.whenGET('/app/').pass through();
angular-mock - angular-mocks - 仅模拟显式请求。传递所有意外请求
我发现 angular-mocks 默认阻止所有请求,并迫使我“通过”我想要的东西,这让我非常沮丧。
有时我只是想用一个模拟测试 1 个 url,我必须为每个“意外请求”错误跳过严重的箍。
我不知道正则表达式,我不喜欢正则表达式,我不想使用正则表达式!
看看我需要一个简单的模拟的这个可怕的代码
为什么不能只简化为一行???
或者更好的是,为什么它不支持该死的通配符?他们是否试图让开发人员的生活更加艰难?
这就是我所需要的,只要它是这样直观的......
有没有办法在 ngMock 中禁用这个全有或全无的约定,并且只拦截我明确模拟的 url?
javascript - 外部承诺永远不会在使用 ngMock 的单元测试中完成
我正在尝试对外部承诺的解决/拒绝进行单元测试。
问题是这些承诺在ngMock
注入模块时永远不会完成 - 这是强制性的,因为我正在触发 HTTP 请求和超时。
以angular-pouchdb 为例,它是我项目的依赖项。从 v2.0.0 开始,由于使用了 PouchDB 承诺,因此在注入 ngMock 时测试不再完成。
示例代码,改编自angular-pouchdb 测试:
上述测试的日志如下:
所以,我的问题归结为:单元测试 Angular 是否缺少一些东西?还是 ngMock 的内部错误?
angularjs - 当我使用配置构建 URL 时,如何测试我的 HTTP 调用?
在我的项目中,我构建了一些 HTTP 请求,如下所示:
这意味着最终的 HTTP 调用看起来像my/service?foo=bar&hello=worldVar
我该如何设置我$httpBackend
的帐户?
我看到的问题是:
- 我不能保证这种风格的参数顺序,这意味着设置第一个参数
expectGet
会很困难。 - 当我真的不关心参数时,很难测试调用
angularjs - 在 Angular 服务中模拟依赖项的正确方法是什么?
设置:Karma、Browserify、Jasmine、Angular。
我正在尝试测试一个 Angular 服务,该服务又使用另一个我想模拟的服务。
我有一种感觉,在这里我得到了我的 ItemLocalStorageService 的另一个实例,它是在模拟注入发生之前创建的。
ItemLocalStorageService.js
ItemLocalStorageServiceTest.js
两种期望都失败了。的输出getAll
是浏览器本地存储的实际内容,不是我提供的模拟输出。我显然做错了什么,所以我很乐意接受任何指引我走上正确道路的指示。