javascript - 为单元测试 js web 请求加载本地 json 文件是一个好习惯吗?

标签 javascript unit-testing

我打算编写多个模拟的网络请求响应并在本地存储为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 个不同的文件(属于源代码的“测试”部分)。

因此,一般的做法是尽可能编写自包含的单元测试。因为 each 间接让你更难从 1. 到 2.

话虽如此,您仍然想编写一个人类可读的单元测试。在你的测试中有“太多”的 JSON 数据会很快降低可读性。

接下来最好的事情是:将 JSON 数据作为文件放置在单元测试附近。

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

关于javascript - 为单元测试 js web 请求加载本地 json 文件是一个好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51738190/

相关文章:

javascript - 访问 formGroup 值时数值显示为空字符串?

unit-testing - Spock交互中如何匹配集合内容?

javascript - 在单元测试中接收语法错误

javascript - 如何创建通用的 jquery 验证和重置函数调用

python - 如何模拟 python dict __str__ 方法?

java - 在 TestNG 中关闭测试输出

reactjs - Apollo 的 MockedProvider 没有明确警告丢失的模拟

javascript - 页面刷新后对话框显示为 div

javascript - 如何修复这个 JQuery 下拉菜单?

javascript - Uint8ClampedArray RGBA 值始终返回全 0 (getImageData)