根据文档,我应该能够模拟graphql错误以进行测试。
To simulate GraphQL errors, simply define errors along with any data in your result.
const dogMock = {
// ...
result: {
errors: [{ message: "Error!" }],
},
};
Run Code Online (Sandbox Code Playgroud)
但是,该错误导致我的测试完全失败。对于查询,它可以按预期工作,但是文档说,它对Mutation也一样。
为了简单起见,这里没有显示突变的错误情况,但是测试Mutation错误与测试Query错误完全相同:只需将错误添加到模拟中,触发突变,并检查UI以获得错误消息。
这是我的代码...
零件
class Example extends Component {
state = {email: ''};
render() {
return (
<div>
<Mutation mutation={EXAMPLE_MUTATION} variables={this.state}>
{(signin, {error, loading}) => {
if(error)
return <p data-test="graphql-error">{error.message}</p>;
return (
<form method="post" onSubmit={async e => {
e.preventDefault();
await signin();
this.setState({email: ''});
}}>
<fieldset disabled={loading} …Run Code Online (Sandbox Code Playgroud)