2017-10-03 6 views
0

dbgraphqlサーバーに対して統合テストを書いています。
jestはテストランナーとアサーションライブラリです。
actual.errorsundefinedではないと私は期待して、(何かが道に沿ってうまくいかない)jest + graphqlの統合テストでエラーが表示される

const actual = await graphql(schema, query); 
expect(actual.errors).toBeUndefined(); 

私のテストが失敗している場合:各テストの

は、私はすべてのエラーを持っていないことを検証します

Expected value to be undefined, instead received 
    [[GraphQLError: Invalid value [object Object]]] 

私が何を参照することができない場合に、このエラーメッセージは無意味です:、エラーを表示
が、これは私が得るものであるためにjest 「無効な値」です。
エラーオブジェクトを出力するようにjestを設定するにはどうすればよいですか?

答えて

0

jestとは何もありません。[object Object]は、object.toString()によって返され、エラーログのプリンタによって呼び出されます。

obj = {x:"x"}; 
alert(obj) 
obj.toString = function(){return JSON.stringify(obj)}; 
alert(obj) 
+0

これを実行するには、オブジェクトの言語をオーバーライドする必要があります。本当に悪い考えです... – itaied

+0

はい、ネイティブの 'Object'をオーバーライドするのは悪い考えですが、 'toString()'をオーバーライドすることは、Javaでのログインのための普遍的なアプローチです:https://stackoverflow.com/questions/10734106/how-to-override-tostring-properly-in-java 私はそれをjavascriptと類推します。 – sinbar

0

エラーメッセージがあるGraphQLError: Invalid value [object Object]あなたはおそらく文字列[object Object]あなたを渡している:あなたはobjectの詳細を見たい場合は 、あなたはリライトこれは、以下のコードのようなものですobjecttoStringを必要としますオブジェクトを渡すことを意味します。または、スキーマにオブジェクトがあると思う文字列があるか、文字列を渡す必要があるときにオブジェクトを渡しています。あなたのスキーマ、クエリ、またはルーツを使って、私はちょうど推測しています。

graphqlオブジェクトには、自動的にログに記録されないプロパティがいくつかあります。しかし、彼らはトンをデバッグするのに役立ちます。​​とerror.stackは私のお気に入りです。 error object sourceに完全なリストが表示されます。

関連する問題