Sinon: O método de restauração do sandbox padrão não restaura stubs / espiões

Criado em 2 mai. 2018  ·  4Comentários  ·  Fonte: sinonjs/sinon

Ao usar qualquer método de sandbox na sandbox padrão, restore() não restaura simulações ou espiões corretamente. Um caso mínimo de reprodução no Sinon v5.0.2:

const sinon = require('sinon');
const myApi = {
  someMethod() {
    console.log('test method!');
  }
};

sinon.stub(myApi, 'someMethod');
sinon.restore();
sinon.stub(myApi, 'someMethod');
// TypeError: Attempted to wrap someMethod which is already wrapped

Parece que na chamada para extend em lib/sinon.js , os sandboxed-un stub/spy/etc. exportações de apiMethods acabar sombreamento os métodos caixa de areia, e assim por restore() não faz nada. Os documentos e a fonte da lib/sinon.js parecem sugerir que esse é o uso pretendido.

Eu testei apenas stub e spy , mas espero que quaisquer outros métodos ocultos também não funcionem como pretendido.

Eu executei esses testes no Node v8.9.4 e Chrome 66.0.3359.117 via Karma / Chromedriver, embora esse problema não pareça relacionado ao ambiente.

Comentários muito úteis

Com bons relatórios de erros, a maioria dos bugs é fácil de eliminar

Todos 4 comentários

Obrigado pelo seu relatório de erro detalhado 👍

Isso foi corrigido em [email protected]

Obrigado por resolver isso tão rapidamente! Muito apreciado :)

Com bons relatórios de erros, a maioria dos bugs é fácil de eliminar

Esta página foi útil?
0 / 5 - 0 avaliações