【发布时间】:2017-03-31 17:40:56
【问题描述】:
我今天开始使用 Jasmine 进行测试,这对我来说是新的。由于我使用的是使用 NodeJS 开发的 GraphQL 服务器,因此我使用的是jasmine-node。
以下是我自己编写的第一个规范,我认为它有效:
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();
});
});
});
});
这给出了以下结果:
..
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."}]}
很多这正是我所期望的。我做了一个没有查询字符串的请求,所以正文中的错误是预期的。
问题是:it("Should expect something") 内的 4 个无用(明显)expects 工作得很好。这些是结果中的4 assertions。 it("Returns statuscode 200.") 中的其他 4 个 expect 根本不在结果中(它们不会失败,也不会通过),但 console.log 是。
我在网上找到的每个示例似乎都与我在这里所做的完全一样,但我无法让它发挥作用。
【问题讨论】:
标签: javascript node.js jasmine-node