在我的 ANGULAR 2 应用程序中有一项服务;包含静态引用属性。
export class MyService {
public static OneProperty: ClassA;
}
这是我要在ts文件中测试的方法的示例实现。
export class TestComponent() {
oneProperty: User;
public NumberOfUsers(): string {
this.oneProperty = MyService.OneProperty.someThing;
return this.oneProperty;
}
}
如何为测试用例模拟静态变量中的数据?每当我尝试以useClass / useValue格式模拟数据时,都会得到 MyService.OneProperty 的未定义值。
答案 0 :(得分:1)
能否请您举一个示例,说明您如何尝试使用useClass / useValue?
这应该有效:
class MockMyService {
public static oneProperty = 'mock';
}
然后在您的测试中:
describe('TestComponent', () => {
beforeEach(() => TestBed.configureTestingModule({
...
providers: [
{provide: MyService, useClass: MockMyService},
]
});
it('should work with mock service', () => {
const mockService = TestBed.get(MyService);
expect(mockService.oneProperty).toEqual('mock');
});
});
上面的内容只是伪的,我无法在任何地方对其进行测试,但这应该可以使您有所了解。