我们的团队构建了一个API,用于为我们的组织提供内部网络服务。 我建立了一个用于测试代码库的mocha测试套件,当前正在通过CLI运行它。

我们有一个公司监视服务,该服务会定期为每台服务器测试一个“ / webcheck”端点,并通知我们这些服务器是否已关闭。

当前,该端点仅以“ overall_status_code:ok”字符串响应,它告诉我们服务器正在运行,仅此而已。 其他端点可能被弄乱了,我们不知道。

我想将此端点绑定到我的Mocha测试套件中,以便在所有测试均通过的情况下,它仅返回“ overall_status_code:ok”。

有人暗示我该怎么做吗? 基本上,如何从节点内部调用测试?

如果您有兴趣,这是我的测试代码:

 const expect = require('chai').expect; const app = require('../server/app.js'); const supertest = require('supertest'); const request = supertest.agent(app); describe('Active Directory Module', () => { it('/ad/members endpoint should return: \\n -> an array of members for a given group \\n -> each element returned should be an object \\n -> John Doe should be the first user in the array', (done) => { request.get('/ad/members?group=%27CHQ%20Service%20Management%27') .expect(200) .end((err, res) => { let result = JSON.parse(res.text); expect(Array.isArray(result)).to.be.true; expect(typeof(result[0]) === 'object').to.be.true; expect(result[0].name === 'John Doe').to.be.true; done(); }) }) it('/ad/membership endpoint should return: \\n -> an array of groups for a given user \\n -> each element returned should be an object \\n -> \\'Domain Users\\' should be the first element in the array', (done) => { request.get('/ad/membership?user=%27chq-mikeru%27') .expect(200) .end((err, res) => { let result = JSON.parse(res.text); // let result = res; expect(Array.isArray(result)).to.be.true; expect(typeof(result[0]) === 'object').to.be.true; expect(result[0].name === 'Domain Users').to.be.true; done(); }) }) it('/ad/userinfo endpoint should return: \\n -> an object\\n -> Should include property called \\'Given Name\\'\\n -> given \\'chq-stephenro\\' the returned object should contain a property \\'UserPrincipleName\\' with value \\'chq-stephenro@corp.company.com\\'', (done) =>{ request.get('/ad/userinfo?user=%27chq-stephenho%27') .expect(200) .end((err, res) => { let result = JSON.parse(res.text); expect(typeof(result) === 'object').to.be.true; expect(result['GivenName']).to.not.be.undefined; expect(result['UserPrincipalName'] === 'chq-stephenro@corp.company.com').to.be.true; done(); }) }) }) describe('Database Querying Module', () => { it('/db/ci-co-conflict-checker should return \\n --> an array\\n --> of arrays\\n --> For each element:\\n * the first, third, and fourth elements should be numbers\\n * the second element should be a string\\n * the fifth element should be a string', (done) => { request.get('/db/ci-co-conflict-checker/?cis=%27CA%20Service%20Catalog%27,%27CA%20Service%20Desk%20Manager%27&start=1533106860&end=1535699040') .expect(200) .end((err, res) => { let result = res.body; expect(Array.isArray(result)).to.be.true; expect(Array.isArray(result[0])).to.be.true; for ( var i = 0; i < result.length; i++ ) { for (var j = 0; j < result[i].length; j++ ) { if ( j === 0 || j === 2 || j === 3) { expect(typeof(result[i][j]) === 'number').to.be.true; } if ( j === 1 || j === 4 ) { expect (typeof(result[i][j]) === 'string').to.be.true; } } } done(); }) }) }) 

#1楼 票数:0 已采纳

是的,您只需要让客户端休息一下就可以对nodejs进行预期结果的比较,但这不是单元测试,而是集成测试。

  ask by mike_butak translate from so

未解决问题?本站智能推荐:

2回复

当控制器抛出方法超级测试时,为什么控制台上会显示错误消息

我正在为一个nodejs / sails js应用程序编写集成测试,其中有一个异步控制器方法/路由,当不提供输入参数时会引发错误。 我正在使用supertest编写集成测试,从我的角度来看,一切正常,但是当测试运行错误写入控制台时。 以下这段代码可以正常工作,因为我将其包装在一个匿名
1回复

在NodeJS中使用其他文件进行测试

我正在使用一组特定的URL连接到服务。 它们位于config.js文件中。 现在,在使用Mocha进行测试时,我想使用一组不同的URL。 是否可以从测试用例中覆盖js文件中配置的网址。这就是我的config.js的外观-
1回复

如何在一天内多次运行Mocha测试?

对于Mocha并在这里进行测试来说还很陌生,因此希望有人可以帮助我或为我指明正确的方向。 我想做的是整天每5分钟运行一次mochaJS测试。 但是,我不想实际键入命令,希望我可以编写一些代码来执行此操作。 到目前为止,我已经尝试在Mocha测试中调整this.timeout,然后设置j
1回复

测试中传递的Supertest/Mocha完成参数

下面是我用mocha,chai和supertest编写的代码。 我对下面工作的代码段有一个疑问,重点是令牌。 显然,令牌在这里定义得很好。 但是,当我按如下所示删除完成的功能时: 令牌未定义。 据我了解,完成是一个从before挂钩传递到其后所有各种测试的函数,该函数从内置源代码中
1回复

Gruntfile从单个grunt命令运行应用程序和模拟测试

我有一个可以运行的Node.js Express REST API应用程序。 好。 我有一个Mocha / Chai / Supertest模拟程序,可以测试上述API应用程序。 好。 但是我必须启动应用程序,然后独立运行模拟测试。 如何运行单个grunt命令启动API应用,让它
1回复

柴-应该拥有财产-超级测试

尝试检查是否存在属性,并且该属性不是空字符串。 我可以使此测试正常运行: 但是下面,当我尝试检查item数组中存在的属性时,我无法使它工作: 但我收到错误AssertionError: expected [ Array(3) ] to have a property 'label'
1回复

如何使用supertest测试具有多个GET参数的API?

我有一个如下的API(GET请求) 在用例中转换如下所示 这将产生特定的JSON响应。 如何使用supertest测试具有多个参数的上述GET API?
1回复

摩卡测试通过了不正确的数据

我使用Mocha,Supertest和Chai进行了以下测试: 如您所见,我们期望响应具有属性“ text”,内容为“ abc”。 但是,当我运行测试时,它可以顺利通过。 这是响应的简化版本: 我期望测试失败,例如abc!= 123456789,但是不幸的是事实并非如此。 有人