有人能帮我解决我的单元测试问题吗?我正在尝试使用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";
添加到文件中,我会得到相同的结果......
任何想法我做错了什么?
答案 0 :(得分:0)
这已经过时了,但我想我会发表意见,以防其他人偶然发现这个问题。
我一直有这个问题,这让我发疯了。我通过将已编译的Javascript文件模式添加到我的karma.config中找到了一种解决方法。我还必须从karma.config中删除Typescript文件模式。这不是我所希望的,但对于寻找答案的其他人来说,这是一种解决方法。