使用 ReSharper 进行 AngularJS 单元测试

标签 angularjs resharper jasmine

我正在尝试为使用 ReSharper 测试运行器运行的 AngularJS Controller 进行 Jasmine 单元测试,以便我可以在 VS 2012 中的一个地方运行我的客户端和服务器端测试。

我遇到了一个问题,即 ReSharper 测试运行器失败并显示“不确定:测试未运行”消息。使用 AngularJS Seed 项目附带的测试运行器,同样的测试运行良好。

这是我的简单故障排除测试:

/// <reference path="~/Scripts/angular/angular.js"/>
/// <reference path="~/tests/test/lib/angular/angular-mocks.js"/>
/// <reference path="~/Scripts/app/controllers.js"/>

'use strict';

describe('controllers', function(){
  beforeEach(module('myApp.controllers'));

  it('should ....', inject(function() {
      expect(1).toEqual(1);
  }));
});

我怀疑这与我的引用文献有关,因为如果我删除对 inject 的调用,我的测试运行良好。然而,inject在 angular-mocks.js(我正在引用)中定义,所以我不确定问题是什么。

有什么建议?

最佳答案

您对 ReSharper 被内联绊倒的预感 inject是的,好像很期待function相反,当它解析文件以获取测试列表时。我已经通过移动 inject 解决了问题s 进入 beforeEach或进入正文it这让 ReSharper 再次高兴起来。顺便说一句,我还在顶部(在其他引用之前)添加了对 jasmine.js 的引用,以摆脱 ReSharper 关于未定义 Jasmine 全局变量的警告。

关于使用 ReSharper 进行 AngularJS 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17618923/

相关文章:

使用 ng-repeat 数据的 AngularJS UI Bootstrap 弹出窗口

javascript - 多个 Controller 操纵 Angular 指令中的内容?

c# - 这是在 C# 中无需空检查的情况下触发/调用事件的更好方法吗?

C# 问题 - 如何使用 try 中代码的特定可能异常填充 catch 语句?

jasmine - 如何在每次测试后运行的 Protractor 中获取全局 afterEach 以截取屏幕截图?

backbone.js - 在 Jasmine 规范测试中触发 d3 事件

angularjs - 位于js文件中的Grunt usemin处理路径?

angularjs - 防止 gulp 压缩本地机器上的代码

unit-testing - Visual Studio 2017 和 Resharper 测试运行程序

Angular 6 测试 : How to provide services without their nested dependencies?