我正在尝试编写一个包含一些方法的类。我不确定我做错了什么。
为了创建这个类,我需要查看以下测试:
'use strict';
const Editor = require('../editor');
const { expect } = require('chai');
describe('Editor', () => {
it('allows users to write text', () => {
const editor = new Editor();
editor.write('Hello - codez');
expect(editor.toString()).to.equal('Hello - codez');
editor.write('moar');
expect(editor.toString()).to.equal('Hello - codez moar');
});
xit('allows users to undo writes', () => {
const editor = new Editor();
editor.write('Hello - codez');
expect(editor.toString()).to.equal('Hello - codez');
editor.write('Moar stuff');
expect(editor.toString()).to.equal('Hello - codezMoar stuff');
editor.write('Even more');
expect(editor.toString()).to.equal('Hello - codezMoar stuffEven more');
editor.undo();
expect(editor.toString()).to.equal('Hello - codezMoar stuff');
editor.undo();
expect(editor.toString()).to.equal('Hello - codez');
editor.undo();
expect(editor.toString()).to.equal('');
});
xit('allows users to find and replace', () => {
const editor = new Editor();
editor.write('foo stuff');
editor.write(' other foo');
editor.replace('foo', 'bar');
expect(editor.toString()).to.equal('bar stuff other bar');
});
xit('allows undo replaces', () => {
const editor = new Editor();
editor.write('foo stuff');
editor.write(' other foo');
editor.replace('foo', 'bar');
expect(editor.toString()).to.equal('bar stuff other bar');
editor.undo();
expect(editor.toString()).to.equal('foo stuff other foo');
editor.undo();
expect(editor.toString()).to.equal('foo stuff');
});
xit('allows users to redo', () => {
const editor = new Editor();
editor.write('foo stuff');
editor.write(' other foo');
editor.replace('foo', 'bar');
expect(editor.toString()).to.equal('bar stuff other bar');
editor.undo();
expect(editor.toString()).to.equal('foo stuff other foo');
editor.undo();
expect(editor.toString()).to.equal('foo stuff');
editor.redo();
expect(editor.toString()).to.equal('foo stuff other foo');
editor.redo();
expect(editor.toString()).to.equal('bar stuff other bar');
});
});
我写了以下代码,但我不确定我做错了什么,也不知道从哪里开始。谁能帮帮忙,告诉我考试是怎么回事,我该怎么做?:
class Editor {
constructor (str) {
this.str = str;
}
write(text) {
let newSentence = text + this.str;
console.log('This is the this str', newSentence);
}
toString(){
}
}
发布于 2017-06-19 04:52:01
class Editor {
constructor (str) {
this.str = str;
this.states = [""]; //for undo
this.undos = [];
}
write(text) {
this.undos = [];
this.states.push(this.str);
this.str += text;
}
undo(){
this.undos.push(this.str);
this.str = this.states.pop() || "";
}
redo(){
if(this.undos.length){
this.states.push(this.str);
this.str = this.undos.pop();
}
}
replace(a,b){
this.states.push(this.str);
this.str = this.str.split(a).join(b);
}
toString(){
return this.str;
}
}你需要保存编辑器字符串的历史记录...
https://stackoverflow.com/questions/44619335
复制相似问题