рдмрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ
рдкреНрд░рдЬрдирди рдХрд░рдирд╛
import * as sinon from "sinon";
class B {
public readonly a: string;
public get(): void {}
}
const bStub = sinon.createStubInstance(B);
sinon.stub(bStub , "a").value("test");
// let b = new B();
// sinon.stub(b, "a").value("test");
рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░
рдареАрдХ рд╕реЗ рдареВрдВрдаред
рдЙрд╕реА рдореБрджреНрджреЗ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдкреБрд░рд╛рдирд╛ рдореБрджреНрджрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд╕рд╛рде рдмрдВрдж рд╣реИ рдЬреЛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдлреА рдорджрджрдЧрд╛рд░ рдирд╣реАрдВ рд╣реИред https://github.com/sinonjs/sinon/issues/829
рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рдореВрд▓реНрдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛, рдлрд┐рд░ рд╕реНрдЯрдм рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХрд╛ рдЖрд╣реНрд╡рд╛рди рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рд╣реИред
import * as sinon from "sinon";
class B {
public readonly a: string;
public get(): void {}
constructor(aa: string) {
this.a = aa;
}
}
// const bStub = sinon.createStubInstance(B);
let b = new B("t");
sinon.stub(b, "a").value("test");
console.log(b.a);
рдЖрдЙрдЯрдкреБрдЯ: рдЯреЗрд╕реНрдЯ
рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕реНрдЯрдм рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реАрдзреЗ рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
import * as sinon from "sinon";
class B {
public readonly a: string;
public get(): void {}
constructor(aa: string) {
this.a = aa;
}
}
const bStub = sinon.createStubInstance(B);
(bStub as any).a = "test";
console.log(b.a);
рдЖрдЙрдЯрдкреБрдЯ: рдЯреЗрд╕реНрдЯ
рд╣рдордиреЗ рдЧреИрд░-рдореМрдЬреВрдж рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рдареВрдВрд╕рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрдиреЗ рдХрд╛ рд╕рдЪреЗрдд рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рд╕реЗ рдХреБрдЫ рдмрд╣реБрдд рд╣реА рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкрд░рд┐рджреГрд╢реНрдп рд╣реЛрдВрдЧреЗред
рд╕рдмрдорд┐рдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рдореБрдЭреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреИрд╕рд╛ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдПред
рдХреГрдкрдпрд╛ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдмрдирд╛рдПрдВ рдФрд░ рд╕рднреА рдХрд╛ рдХреБрдЫ рд╕рдордп рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкрд▓реЗрдЯ рднрд░реЗрдВред