我打算编写多个模拟的网络请求响应并在本地存储为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);
});
最佳答案
单元测试的目的是快速从
- 一个失败的测试用例
- 错误的生产代码
意思是:你读了测试代码,你立刻明白它应该做什么。无需滚动浏览 10 个不同的文件(属于源代码的“测试”部分)。
因此,一般的做法是尽可能编写自包含的单元测试。因为 each 间接让你更难从 1. 到 2.
话虽如此,您仍然想编写一个人类可读的单元测试。在你的测试中有“太多”的 JSON 数据会很快降低可读性。
接下来最好的事情是:将 JSON 数据作为文件放置在单元测试附近。
所以,长话短说:让单元测试依赖测试用例外部的信息并不理想,但有时这是不可避免的。
关于javascript - 为单元测试 js web 请求加载本地 json 文件是一个好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51738190/