module A module B class C def fun(github) return username end def gun(github) author=fun(github) #perfom some operation return count end end endQuiero probar la función del arma, pero para obtener el valor del autor, es divertido llamar a la función. Ahora, no quiero llamar a esta función y, en su lugar, cerrarla.
Para lograr eso, escribí esta línea en la sección antes de hacer mientras probaba la función_1, pero no funciona.
allow(A::B::C).to receive(:fun).and_return("username")no puedo descifrar
Ambos métodos son métodos de instancia, no métodos de clase, por lo tanto, debe agregar el método en la instancia.
Lo siguiente podría funcionar para usted:
let(:abc) { A:BCnew } let(:github) { ... } before { allow(abc).to receive(:fun).and_return("username") } it "..." do expect(abc.fun(github)).to eq(...) expect(abc).to have_received(:fun).with(github) end