Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 如何对使用Express+;猫鼬?_Unit Testing_Node.js_Rest_Mongoose_Express - Fatal编程技术网

Unit testing 如何对使用Express+;猫鼬?

Unit testing 如何对使用Express+;猫鼬?,unit-testing,node.js,rest,mongoose,express,Unit Testing,Node.js,Rest,Mongoose,Express,我有一个RESTAPI服务器,它使用Express、Mongoose和。我想对我的API进行单元测试。基本上,在端口x上启动一个临时web服务器,在端口y上启动一个空的mongo数据库,执行一些API调用(get和puts)并验证返回的内容,然后在测试完成后关闭临时服务器并删除测试数据库。最好的方法是什么?我一直在研究/但不确定如何设置临时服务器和数据库,也不确定最佳做法是什么。我建议尝试一下。您可以进行异步测试、模拟/存根并启动服务器。我找到了我想要的东西:。我不喜欢它基于.txt文件的语法-

我有一个RESTAPI服务器,它使用Express、Mongoose和。我想对我的API进行单元测试。基本上,在端口x上启动一个临时web服务器,在端口y上启动一个空的mongo数据库,执行一些API调用(get和puts)并验证返回的内容,然后在测试完成后关闭临时服务器并删除测试数据库。最好的方法是什么?我一直在研究/但不确定如何设置临时服务器和数据库,也不确定最佳做法是什么。

我建议尝试一下。您可以进行异步测试、模拟/存根并启动服务器。

我找到了我想要的东西:。我不喜欢它基于.txt文件的语法-我适应了使用.json文件来代替我的规范。

它也构建在上面,第一个似乎很容易使用,但第二个非常灵活和强大,我使用(持续集成服务器)和测试我的应用程序,我发现自己和你有同样的问题。我对Jenkins进行了配置,使其能够执行此shell命令:

npm install
NODE_ENV=testing node app.js &
npm mocha
pkill node
这将运行服务器以执行测试,然后终止它。这还设置了NODE_ENV环境变量,以便在测试时可以在不同的端口上运行服务器,因为Jenkins已经使用端口8080

代码如下:

app.js:

...
var port = 8080
if(process.env.NODE_ENV === "testing")
    port = 3000;
...
test.js:

var request = require('request'),
    assert = require('assert');

    describe('Blabla', function() {
      describe('GET /', function() {
        it("should respond with status 200", function(done) {
          request('http://127.0.0.1:3000/', function(err,resp,body) {
            assert.equal(resp.statusCode, 200);
            done(); 
          }); 
        }); 
      });
    });
没有正确的方法,但我确实为我的个人目录结构创建了一个种子应用程序,并包括@norman784建议的誓言测试

您可以克隆它:
git clonehttps://github.com/hboylan/express-mongoose-api-seed.git


或者使用npm:
npm安装express mongoose api种子

看起来很有趣,但文档似乎不存在。。。您是否找到任何有用的示例来启动和运行?不确定如何使用api easy和/或vows使用备用配置设置启动临时节点服务器。您是如何尝试配置测试的?