【问题标题】:Node.js Testing REST APINode.js 测试 REST API
【发布时间】:2014-04-28 09:13:25
【问题描述】:

我正在测试一个我使用 jasmine 框架 Node js 的项目。

我通过模拟 $httpBackend 对客户端代码进行了单元测试。

现在我想测试我的服务器端代码和 REST api,但不知道该怎么做?

测试 REST api 的最佳方法是什么?

【问题讨论】:

    标签: node.js angularjs unit-testing


    【解决方案1】:

    我最近探索了我的 REST API 应用程序的自动化测试,并遇到了许多技术选择。由于我的 REST API 基于 Express,我决定使用来自同一开发人员 TJ Holowaychuk 的测试框架软件,他的想法是,他用于测试自己的 Express 的框架应该做得非常好,并且足以满足我的需求。

    我对 Node 技术的最终组合感到满意。我使用 Grunt 任务运行程序(由 npm 执行)、Mocha 测试运行程序(来自 TJ)、chai 断言库(使用 'should' 断言样式)和 supertest(来自 TJ)。

    使用该测试堆栈,我可以轻松地运行我的 REST API 的自动化测试。这是一个简单测试的运行时输出:

    [jfathman@cloud api]$ npm test
    
    > api@0.0.1 test /home/jfathman/work/git/api
    > node_modules/.bin/grunt test
    
    Running "jshint:file" (jshint) task
    >> 3 files lint free.
    
    Running "mochaTest:test" (mochaTest) task
    
      Test API Proxy REST API
        ? Read config.yaml 
        ? GET /metadata/new, expect json and 200 OK (114ms)
        ? GET /metadata/saved, expect json and 200 OK (100ms)
        ? GET /metadata/deleted, expect json and 200 OK (88ms)
        ? GET /metadata/invalid, expect 400 Bad Request 
    
      6 passing (326ms)
    
    Done, without errors.
    

    您也可以单独运行测试运行程序:

    [jfathman@cloud api]$ mocha -R spec
    
      Test API Proxy REST API
        + Read config.yaml 
        + GET /metadata/new, expect json and 200 OK (95ms)
        + GET /metadata/saved, expect json and 200 OK (102ms)
        + GET /metadata/deleted, expect json and 200 OK (82ms)
        + GET /metadata/invalid, expect 400 Bad Request 
    
      6 passing (305ms)
    

    现在在开发过程中从命令行或从 Jenkins/etc 运行 REST API 测试套件是一件简单的事情。在 CI 测试期间。

    【讨论】:

      【解决方案2】:

      看看Chakram,它是一个专为测试 REST API 设计的测试工具。它是在 Mocha 之上编写的,并且允许使用 BDD 样式。

      【讨论】:

        猜你喜欢
        • 2015-03-03
        • 1970-01-01
        • 2011-10-18
        • 1970-01-01
        • 2019-08-06
        • 2021-06-04
        • 2014-12-31
        • 1970-01-01
        • 2011-10-30
        相关资源
        最近更新 更多