私は今日、ジャスミンでテストを開始しました。 NodeJSで開発されたGraphQLサーバで作業しているので、jasmine-node
を使用しています。ジャスミンノードが実行されないことを期待しました
次は私が自分自身を書き、私の最初の仕様である、と私はそれが働いていたと思った。たくさんで
..
Finished in 0.018 seconds
2 tests, 4 assertions, 0 failures, 0 skipped
Error: null
http://localhost:8000/graphql
StatusCode: 400
Body: {"errors":[{"message":"Must provide query string."}]}
が、これは私が期待するものを正確にある場合:
const request = require('request');
const config = require('../sources/config');
const base_url = `http://localhost:${config.graphqlPort}/${config.graphqlRoute}`;
describe("GraphQLServer.",() => {
it("Should expect something.",() => {
expect(1).not.toEqual(2);
expect(1).toEqual(1);
expect(true).toBe(true);
expect(false).not.toBe(true);
});
describe('When request is made.',() => {
it('Returns statuscode 200.',() => {
request.get(base_url, (error, response, body) => {
console.log('Error: ', error);
console.log(base_url);
console.log('StatusCode: ', response && response.statusCode);
console.log('Body:', body);
expect(true).toBe(true);
expect(true).toBe(false);
expect(response.statusCode).toBe(200);
expect(response.statusCode).toBe(400);
done();
});
});
});
});
これは、次のような結果になります。私は、クエリ文字列を使わないでリクエストを行うので、本体のエラーが予想されます。
問題は次のとおりです。expects
it("Should expect something")
内の4つの役に立たない(明白な)問題はうまくいきます。結果は4 assertions
です。他の4つのexpect
の内部it("Returns statuscode 200.")
は単に結果には(彼らは失敗しないと彼らは通過しません)ですが、console.log
のです。
私がオンラインで見つけたすべての例は、私がここでやることとまったく同じように見えますが、これを動作させることはできません。
ありがとうKev!私は正直なところ、そのばかげたミスを見ませんでした。私は数週間前にJavascriptで開発を開始したことを認めなければなりません。だから私はそのようなバグを早く見つけ出す経験がないと思います。 Javascriptは、それが必要ではないというエラーを出さないという習慣で、正確には役立たない。しかし、ありがとう! – Kenny
あなたは大歓迎です!本当に、多くのJS文脈がエラーに対する最悪のフィードバックをもたらします。本当に時々狂っていることがあります。助けてうれしい! – Kev