我想在Angular2中导出一个可重复使用的JSON模拟(对于我的测试等)
e.g。
export class Mock {
"bla1":1 // real values, not types
"bla2":2
}
然后我想在我的测试中导入它,例如:
import { Mock } from './mock'
并使用它,例如:
myData = Mock
如何实现,我需要哪些装饰器等?
答案 0 :(得分:0)
没有迹象表明应该是一个班级。这是一个POJO常数。常量OpaqueToken
is supposed to be used。
import { OpaqueToken } from '@angular/core';
export const jsonObj = { ... };
export const JSON = new OpaqueToken('json constant');
export const JSON_PROVIDER = { provide: JSON, useValue: jsonObj };
然后可以将其添加到当前providers
并注入启用DI的功能
import { Inject } from '@angular/core';
import { JSON, JSON_PROVIDER } from '.../json';
...
providers: [JSON_PROVIDER]
...
constructor(@Inject(JSON) json) {}
用
嘲笑providers: [{ provide: JSON, useValue: mockedJsonObjMock }]
如果不应该对常量进行模拟并从DI中获益,只需导入/导出json
对象,然后再看看。
答案 1 :(得分:-2)
创建一个这样的模拟文件 -
people_mock.json
[
{"id": 1, "name": "Brad"},
{"id": 2, "name": "Jules"},
{"id": 3, "name": "Jeff"}
]
在您的spec文件中使用
import {PEOPLE_MOCK} from './people_mock'
Demo此处