我的目标是对Angular中使用apollo客户端缓存功能readFragment
的组件进行单元测试。
我遵循了Apollo的this guide,但没有看到使用客户端缓存的测试代码的任何示例。
我相关的代码将apollo注入到构造函数中,并执行以下readFragment:
import { Apollo } from 'apollo-angular';
constructor(private apollo: Apollo) {}
const role = cache.readFragment({
fragment: EddyUserRoleBadgeFragmentDoc,
id: `EddyUserRole:${roleId}`,
});
在我的规范中,我希望使用ApolloTestingController
:
describe('cmpt name', () => {
let controller: ApolloTestingController;
beforeEach(() => {}) // Code that sets up cmpt, and sets the controller above
afterEach(() => {
controller.verify();
});
it('first test', () => {
// How should I use the controller here - to mock the readFragment against the cache?
const op = controller.
});
});
非常欢迎任何帮助。
当前解决方法:
我在configureTestingModule
的提供者部分中将Apollo存入这样的被测组件中:
{
provide: Apollo,
useValue: {
getClient: () => ({
readFragment: () => ({ foo: 'bar' }),
}),
},
},