Многие люди сталкиваются с проблемой заглушки с помощью sinon.js, которая не работает при использовании destructor
, и есть большое объяснение, упомянутое в Функция заглушки Sinon, используемая при деструктурировании .
И как уже упоминалось в ответе, при использовании деструктора мы всегда вызываем оригинальную функцию:
const stub = (o, method) => (o[method] = () => "I am a stub");
const obj = {
methodFoo() {
return "I am foo";
}
};
// same as doing `const methodFoo = obj.methodFoo;`
const { methodFoo } = obj; // "import" using destructuring
console.log("obj.methodFoo(): ", obj.methodFoo());
console.log("methodFoo()", methodFoo());
console.log("Stubbing out method!");
stub(obj, "methodFoo");
console.log("obj.methodFoo: ", obj.methodFoo());
console.log("methodFoo()", methodFoo());
Я искал ответ, почему destructor
переопределяет stub
или как он работает под капотом, чтобы понять, как манипулировать данными, но я не нашел никакого решения. Есть ли какие-либо подробности по этому вопросу?