我如何编写测试来模拟和处理 nodejs 中的 JSON 解析错误
How can I write test to mock and handle JSON parsing error in nodejs
我正在从 JSON 类型文件中检索 JSON 数据,以便使用我的 test.js 文件中的以下代码进行测试
var data;
before(function(done) {
data = JSON.parse(fs.readFileSync(process.cwd() + '/path/to/data.json', 'utf8'));
done();
});
我如何编写测试来使用 assert 或 mocha 模拟和测试 JSON 解析错误?我希望测试 confirm/assert 解析 JSON.
没有错误
您应该只使用 before
挂钩来设置您的测试,而不是断言您尝试测试的代码的行为符合您的预期(有关挂钩及其使用的更多信息摩卡 documentation).
要断言您尝试测试的代码确实如您预期的那样运行,您应该将代码放在 it
.
中
考虑到这一点,您可以在 before
挂钩中读取 json 文件的原始数据(因为这部分是测试的设置),然后编写对json 测试中的字符串:
var rawData;
before(function() {
// No need to use 'done' since we are performing a synchronous task
rawData = fs.readFileSync(process.cwd() + '/path/to/data.json', 'utf8');
});
it('should correctly parse the json', function() {
var data = JSON.parse(rawData);
// Your expectations about data would be placed here.
});
为了达到预期效果,您可以使用 any assertion library you want 并且您应该检查 data
是否具有 'path/to/data.json' 文件中存在的属性和值。
例如,如果您使用 chai 库进行断言并且您的 data.json
文件包含以下内容:
{ key1: 'value1', key2: 'value2' }
你可以写断言:
it('should correctly parse the json', function() {
var data = JSON.parse(rawData);
// Your expectations about data would be placed here.
expect(data).to.deep.equal({ key1: 'value1', key2: 'value2' });
});
我正在从 JSON 类型文件中检索 JSON 数据,以便使用我的 test.js 文件中的以下代码进行测试
var data;
before(function(done) {
data = JSON.parse(fs.readFileSync(process.cwd() + '/path/to/data.json', 'utf8'));
done();
});
我如何编写测试来使用 assert 或 mocha 模拟和测试 JSON 解析错误?我希望测试 confirm/assert 解析 JSON.
没有错误您应该只使用 before
挂钩来设置您的测试,而不是断言您尝试测试的代码的行为符合您的预期(有关挂钩及其使用的更多信息摩卡 documentation).
要断言您尝试测试的代码确实如您预期的那样运行,您应该将代码放在 it
.
考虑到这一点,您可以在 before
挂钩中读取 json 文件的原始数据(因为这部分是测试的设置),然后编写对json 测试中的字符串:
var rawData;
before(function() {
// No need to use 'done' since we are performing a synchronous task
rawData = fs.readFileSync(process.cwd() + '/path/to/data.json', 'utf8');
});
it('should correctly parse the json', function() {
var data = JSON.parse(rawData);
// Your expectations about data would be placed here.
});
为了达到预期效果,您可以使用 any assertion library you want 并且您应该检查 data
是否具有 'path/to/data.json' 文件中存在的属性和值。
例如,如果您使用 chai 库进行断言并且您的 data.json
文件包含以下内容:
{ key1: 'value1', key2: 'value2' }
你可以写断言:
it('should correctly parse the json', function() {
var data = JSON.parse(rawData);
// Your expectations about data would be placed here.
expect(data).to.deep.equal({ key1: 'value1', key2: 'value2' });
});