加载本地json文件以进行js Web请求的单元测试是一种好习惯吗?

时间:2018-08-08 03:23:46

标签: javascript unit-testing

我计划编写多个模拟的Web请求响应并将其本地存储为json。这是一个好习惯吗?我不使用以下间谍程序,因为我的json文件太长且不方便放入代码中

it('should send post params in request body', function() {
    var params = { foo: 'bar' };
    var expected = JSON.stringify(params);

    var request = new PassThrough();
    var write = sinon.spy(request, 'write');

    this.request.returns(request);

    api.post(params, function() { });

    assert(write.withArgs(expected).calledOnce);
});

1 个答案:

答案 0 :(得分:2)

单元测试的目的是快速

获取
  1. 失败的测试用例
  2. 错误的生产代码

含义:您阅读测试代码,即可立即了解它应该执行的操作。无需滚动浏览10个不同的文件(属于源代码的“测试”端)。

因此,通常的做法是编写尽可能独立的单元测试。因为 each 间接使您更难从1.转到2。

话虽如此,您仍然想编写一个人类可读的单元测试。测试中包含“太多” JSON数据将迅速降低可读性。

接下来的第二件事是:将JSON数据作为文件放置在与单元测试紧密相关的位置。

因此,长话短说:让单元测试依赖测试用例的外部信息不是理想的选择,但是有时这是不可避免的。