使用 jasmine.createSpyObj 实用程序构建 SpyObj 时声明 getter 属性?

vin*_*nce 7 testing jasmine

假设我有一堂课:

class MyRealClass {
  get propOne() { return stuffFromTheServer; }
}
Run Code Online (Sandbox Code Playgroud)

测试时,我想实现这个功能:

const mockClass = {
  get propOne() { return someStuff; }
}

jasmine.spyOnProperty(mockClass, 'propOne', 'get');
Run Code Online (Sandbox Code Playgroud)

通过做这样的事情......

const spy = jasmine.createSpyObj('mockClass', [
  {methodName: 'propOne', accessType: 'get'}
]);
Run Code Online (Sandbox Code Playgroud)

换句话说,我想构建一个SpyObj<MyRealClass>usingjasmine.createSpyObj并将 getter 属性声明为methodName数组中的createSpyObj()方法(第二个参数是方法。

这可能吗?

Wal*_*zyk 1

我通过这段代码做到了令人惊讶的简单:

const routerMock = jasmine.createSpyObj(['events']);
routerMock.events = of(new NavigationEnd(0, 'url1', 'url2'));

const serviceToTest = new SomeService(routerMock);
Run Code Online (Sandbox Code Playgroud)