在Angular2中导出JSON Mock

时间:2016-07-10 14:59:30

标签: angular

我想在Angular2中导出一个可重复使用的JSON模拟(对于我的测试等)

e.g。

export class Mock {

   "bla1":1 // real values, not types
   "bla2":2
}

然后我想在我的测试中导入它,例如:

import { Mock } from './mock'

并使用它,例如:

myData = Mock

如何实现,我需要哪些装饰器等?

2 个答案:

答案 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此处