gpt4 book ai didi

Javascript 类 getter setter 在单元测试下显示 Uncovered Line

转载 作者:行者123 更新时间:2023-11-30 19:47:28 29 4
gpt4 key购买 nike

我有以下 javascript 类并使用 mocha 和 sinon 编写单元测试。当我运行测试用例时,我看到未覆盖的“return this._agentId;”行和'this._agentId = value;'。我不确定如何在测试中覆盖这些行。我正在使用 Istanbul 尔测试覆盖率工具来查看覆盖率。

//代理消息.js

    class AgentMessage {
constructor(agentId, message) {
this._agentId = agentId;
this._message = message;
}

get agentId() {
return this._agentId;
}

set agentId(value) {
this._agentId = value;
}

}

module.exports = AgentMessage;

//代理消息.test.js

    'use strict';

const chai=require('chai');
const sinon=require('sinon');
var chaiAsPromised=require('chai-as-promised');
chai.use(chaiAsPromised).should();
const expect = chai.expect;
const agentMessage = require('../src/model/agentMessage');

describe('agentMessage test',function() {
let sandbox;
let agentMessageObj;
beforeEach(() => {
agentMessageObj = new agentMessage('agentId', 'message');
sandbox=sinon.sandbox.create();
});

afterEach(() => {
sandbox.restore();
});
it('agentMessage set agentId Test',() => {
agentMessageObj.agentId = 'agentId';
expect(agentMessageObj.agentId).to.deep.equal('agentId');
});
it('agentMessage get agentId Test',() => {
expect(agentMessageObj.agentId).to.equal('agentId');
});

});

最佳答案

我没有看到与您相同的问题。我获得了 100% 的覆盖率。

你说 istanbul 但你实际上使用的是 nyc包对吗?我想你会发现 instanbul project如果您还没有,建议您使用 nyc runner。

如果可以,请考虑刷新您的环境。

rm -rf .nyc_output && rm -rf coverage && rm -rf node_modules
npm i --save-dev nyc mocha chai

如果这不能解决问题,请考虑至少暂时删除您在这些特定测试中未使用的内容。例如 sinon 和 chai-as-promised。隔离代码。看看那里是否有一些冲突。

试试这个类似的代码。我得到全面报道。

./node_modules/.bin/nyc --reporter html ./node_modules/.bin/mocha test.js

测试.js

const { expect } = require('chai')
const AgentMessage = require('./index');

describe('agentMessage test', function () {
let agentMessage;

beforeEach(function () {
agentMessage = new AgentMessage('agentId01', 'message02');
});

it('agentMessage set agentId Test', async function () {
agentMessage.agentId = 'agentId02';
expect(agentMessage.agentId).to.deep.equal('agentId02');
});
});

如果在所有这些之后,如果它仍然是一个问题,如果您使用的是 more advanced configuration of nyc/istanbul ,开始剥离该配置并使用默认属性。看看您是否找到了甜蜜/麻烦的部分。

关于Javascript 类 getter setter 在单元测试下显示 Uncovered Line,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54815827/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com