【发布时间】:2022-11-18 02:21:58
【问题描述】:
我有 2 个 mutate gql 查询,我需要在我的单元测试中模拟它们。对于单元测试,我使用的是反应测试库。在我的功能测试期间,调用了 2 个不同的 mutate,我必须找到一种方法来区分它们,因此在我的测试中,它将知道以正确的顺序调用了哪个。
这里有 2 个变异 gql:
export const closeMultipartUpload: any = gql`
mutation closeMultipartUpload(
$directoryID: String!
$uploadID: String!
) {
closeMultipartUpload(
directoryID: $directoryID
uploadID: $uploadID
) {
versionID
}
}
`;
export const fileUploadMutation = gql`
mutation createUploadUrl(
$directoryID: String!
) {
createUploadUrl(
directoryID: $directoryID
requesterID: $requesterID
) {
url
documentID
}
}
`;
模拟我在测试中使用的 API:
graphql.mutate = jest.fn().mockImplementation(() =>
Promise.resolve({
data: {
'createUploadUrl': {
'url': 'foo',
'documentID': '123
}
},
})
);
但我不能以相同的方式模拟另一个 API 调用,因为反应测试库可以识别哪个是哪个。我认为 spy on 可以提供帮助。但它没有,或者至少我没有正确使用它。
我会感谢你的帮助
【问题讨论】:
-
你找到解决办法了吗?
标签: reactjs jestjs graphql react-testing-library