【发布时间】:2021-02-20 01:04:26
【问题描述】:
免责声明:测试作业的一部分。鉴于这门课,我应该为它写两个测试,但我被告知我没有涵盖所有边缘。我注意到构造函数没有采用其他路径。我该怎么办?
import { Proccessor } from '../../services/processor';
class processForm {
constructor() {
if (!processForm.instance) {
processForm.instance = this;
}
return processForm.instance;
}
setData(data) {
this.Proccessor.prepareData(data);
}
resetData(){
this.Proccessor.resetData();
}
}
const SetForm = new processForm();
export default SetForm;
抛开现有的模拟,我是这样做的:
import SetForm from './SetForm';
describe('Process data', () => {
test('can set data', () => {});
test('can reset data', () => {});
});
我的测试通过了,但我注意到以下警告:
else path not taken
开
constructor() {
**E** if (!processForm.instance) {
processForm.instance = this;
}
return processForm.instance;
}
虽然我不允许编辑课程本身,但我确实尝试过 /* istanbul igore else */ 没有效果。我到底错过了哪些报道?
【问题讨论】:
-
在 JS 开发者场景中,关于你所拥有的构造函数是否应该被认为是合法的(它当然不是 GoF 风格的 Singleton,即使它确实有效)正在进行一场圣战,因为它违反了
new运算符始终返回对单独对象标识的引用的期望)。请问这里的背景故事是什么? -
是否允许在不更改类本身的情况下以不同方式导出
processForm类? -
@Dai 这一章是关于单元测试,主要用于模拟(导入的服务),但我被告知我没有涵盖所有边缘情况。
-
@xdhmoore 我不确定,但我认为只要我不从根本上更改提供的类,我仍然可以提交。
标签: jestjs