Describa el error
Reproducir
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");
Comportamiento esperado
talón correctamente.
Hay un problema anterior que menciona el mismo problema, pero se cierra con un comentario que no es muy útil para mí. https://github.com/sinonjs/sinon/issues/829
Sin embargo, asignando valor de antemano a la propiedad, entonces el stub funcionará. Pero realmente no quiero invocar al constructor ya que es bastante complicado.
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);
salida: prueba
Actualmente trabajando con la asignación directa al objeto stub.
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);
salida: prueba
Hemos tomado la decisión consciente de no permitir el stubing de propiedades inexistentes, ya que eso generaría algunos escenarios muy confusos.
El código enviado no me parece JavaScript, no sé cómo ejecutarlo.
Cree un problema nuevo y complete la plantilla para ahorrar tiempo a todos.