Natviescript中的单元测试Angular:使用类装饰器

时间:2016-06-17 13:10:29

标签: javascript angularjs unit-testing nativescript

有人能帮我解决我的单元测试问题吗?我正在尝试使用Angular2进行测试,因此我有以下tests/example.ts文件:

import {beforeEachProviders, inject} from "@angular/core/testing";
import {CloudService} from "../Shared/Cloud/cloud.service";
import {Login} from "../Components/Dock/Login/login.component";

 describe('1st tests', () => {
    it('true is true', () => expect(true).toEqual(true));
  });

describe('Login Component', () => {
  var _cloudService = new CloudService;
  var login = new Login(_cloudService);
  beforeEachProviders(() => [CloudService]);

  it("Toggles Child Opacity on Click", function() {
    expect(login.google.nativeElement.style.opacity.toEqual(0)); //Check if the counter equals 42.
  });
});

如果我刚进行第一次测试,一切运行正常,但是第二次测试(Angular测试),我得到以下输出:

  

JS:NSUTR:成功连接到业力

     

17 06 2016 13:39:52.033:INFO [NativeScript / 23(6.0; Google Nexus 6 - 6.0.0 - API 23 - 1440x2560)]:连接套接字/#RVDKwphYh_vDt9dxAAAA,ID为NativeScriptUnit-6168

     

JS:NSUTR:下载http://192.168.101.2:9876/context.json

     

JS:NSUTR:无视第二次执行

     

JS:NSUTR:eval脚本/base/node_modules/jasmine-core/lib/jasmine-core/jasmine.js?391e45351df9ee35392d2e5cb623221a969fc009

     

JS:NSUTR:eval脚本/base/node_modules/karma-jasmine/lib/boot.js?945a38bf4e45ad2770eb94868231905a04a0bd3e

     

JS:NSUTR:eval脚本/base/node_modules/karma-jasmine/lib/adapter.js?7975a273517f1eb29d7bd018790fd4c7b9a485d5

     

JS:NSUTR:需要来自../../ tests / example.js的脚本/base/app/tests/example.js?a455c4e9fa5e9b056e0c931845325f514b63be7f

     

JS:NSUTR:this.error:使用类装饰器时需要reflect-metadata shim

     

JS:at ../../tests/example.js   17 06 2016 13:39:53.605:WARN [NativeScript / 23(6.0; Google Nexus 6 - 6.0.0 - API 23 - 1440x2560)]:适配器未报告规格总数。   NativeScript / 23(6.0;谷歌Nexus 6 - 6.0.0 - API 23 - 1440x2560):执行0 0成功(0秒/ 0秒)

     

NativeScript / 23(6.0; Google Nexus 6 - 6.0.0 - API 23 - 1440x2560)../../ tests / example.js at line 0 FAILED           使用类装饰器时需要reflect-metadata shim   NativeScript / 23(6.0; Google Nexus 6 - 6.0.0 - API 23 - 1440x2560):

     

执行1 of 0(1失败)错误(0.114秒/ 0秒)

     

JS:NSUTR:completeAck

     

JS:NSUTR-socket.io:io服务器断开连接

如果我将行import "reflect-metadata";添加到文件中,我会得到相同的结果......

任何想法我做错了什么?

1 个答案:

答案 0 :(得分:0)

这已经过时了,但我想我会发表意见,以防其他人偶然发现这个问题。

我一直有这个问题,这让我发疯了。我通过将已编译的Javascript文件模式添加到我的karma.config中找到了一种解决方法。我还必须从karma.config中删除Typescript文件模式。这不是我所希望的,但对于寻找答案的其他人来说,这是一种解决方法。