在进行JS Web请求的单元测试时,加载本地JSON文件是一种好的实践吗?

4

我计划编写多个模拟的Web请求响应并将其存储为JSON格式。这是一个好的实践吗?我不使用以下类似的spy,因为我的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个回答

2
单元测试的目的是快速从失败的测试用例到达有问题的生产代码。这意味着您阅读测试代码时,应立即理解其应该执行的操作,而不需要滚动查看源代码中“测试”方面的10个不同文件。因此,通常的做法是尽可能编写自包含的单元测试,因为每个间接调用都会使您从1到2的过程更加困难。话虽如此,您仍然希望编写易于阅读的单元测试。在测试中包含“过多”的JSON数据将迅速降低可读性。因此,下一个最好的方法是将JSON数据作为文件紧密地放置在单元测试旁边。总之,让单元测试依赖于测试用例之外的信息并不理想,但有时是不可避免的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接