【问题标题】:jasmine encountered a declaration exceptionjasmine 遇到声明异常
【发布时间】:2014-05-06 17:51:12
【问题描述】:

运行 Visual Studio 我有以下茉莉花测试。

'use strict';

///<reference path="jasmine.js"/>
///<reference path="../../Scripts/angular.min.js"/>
///<reference path="../../Scripts/angular-route.min.js"/>
///<reference path="../../Scripts/angular-mocks.js"/>
///<reference path="../application.js"/>

describe('StatusPage Tests', function () {
    describe('Application Functions', function () {
        var location;

        beforeEach(module("StatusApplication"));

        beforeEach(inject(function($location) {
            location = $location;
        }));

        it('DetermineRootUrl_Application_RootUrl', function () {
            var result = DetermineRootUrl(location);

            var expectedResult = 'https://localhost/OK59SP1/';
            expect(expectedResult).toBe(expectedResult);
        });
    });
});

当我尝试使用 angular-mock 函数时,问题似乎出现了。 只要我包含任何 beforeEach 代码块,测试就不会运行,我得到的唯一消息是“遇到声明异常”

我不确定我在这里做错了什么,有什么建议吗? 我检查了引用文件的路径,它们是正确的。

【问题讨论】:

  • 您是否在 ReSharper 中运行 JavaScript 测试?您是否尝试过查看浏览器的控制台,看看那里是否有更多关于错误的详细信息?
  • 有什么消息吗?你解决了这个问题吗?

标签: angularjs jasmine


【解决方案1】:

当我在describe 中直接使用expect 时,这发生在jest 中。 expect 应该在 it 内调用(或者它具有的任何别名,例如 xtesttest

describe('a', () => {
   expect(1).toEqual(0); /// encountered a declaration exception

   it('b', () => {
      expect(1).toEqual(0); /// works fine
   });
});

【讨论】:

    【解决方案2】:

    看看这个:Testacular: encountered a declaration exception

    尝试在您的配置文件中包含 angular-mocks.js

    【讨论】:

      【解决方案3】:

      引用必须位于文件顶部 (https://stackoverflow.com/a/7003383/5409756)。我还建议创建一个包含所有参考的参考文件。这样,您只需在所有测试中包含一个文件。 (How to reference multiple files for javascript IntelliSense in VS2010)

      这应该可行:

      ///<reference path="jasmine.js"/>
      ///<reference path="../../Scripts/angular.min.js"/>
      ///<reference path="../../Scripts/angular-route.min.js"/>
      ///<reference path="../../Scripts/angular-mocks.js"/>
      ///<reference path="../application.js"/>
      
      'use strict';
      
      describe('StatusPage Tests', function () {
          describe('Application Functions', function () {
              var location;
      
              beforeEach(module("StatusApplication"));
      
              beforeEach(inject(function($location) {
                  location = $location;
              }));
      
              it('DetermineRootUrl_Application_RootUrl', function () {
                  var result = DetermineRootUrl(location);
      
                  var expectedResult = 'https://localhost/OK59SP1/';
                  expect(expectedResult).toBe(expectedResult);
              });
          });
      });

      【讨论】:

        猜你喜欢
        • 2013-03-22
        • 1970-01-01
        • 2014-08-02
        • 2023-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-09
        相关资源
        最近更新 更多