Comments (4)
The default constructor would create a stub that overwrites the original object unknowing about how to restore it.
The stub would work, but a function like restore requires pre-knowledge of the original function behaviour, thus it won't be available.
The current implementation does not provide a restore function for the stubs created by the default constructor, thus the undefined value.
from sinon.
This was closed, but it looks like you wanted a new feature? Not a bug, but missing functionality? Could you describe how you wanted it to look?
from sinon.
This issue was mainly due to a confusion, if something would be updated may be it's the doc part.
Scenario:
- A stub function was being assigned to a stub object.
- After finishing the tests all the stubbed methods were being restored.
Issue:
- The
restore()
method is undefined for stubs that are created with the default constructor ( note: we can only stub using the default constructor in this case, asstub(obj, 'function')
requires the'function'
to be predefined).
Fix:
- Check if the
restore()
is defined for the stubbed method before calling it.
from sinon.
Ah, I get you. There is no way to fix this, as a function in itself does not know which name it is assigned to, so a restore function would not know what to do with this
.
from sinon.
Related Issues (20)
- I can't find the CHANGELOG HOT 9
- Elaborate on "For the stubbing to work, the stubbed method cannot be destructured, neither in the module under test nor in the test." HOT 5
- Unable to install [email protected] HOT 6
- Remove unused/meaningless exports and modules from the codebase HOT 1
- Limit assertion log to a reasonable default HOT 1
- `returns` not override `callThrough` HOT 4
- `returns` clears fake's `callArgAt` HOT 5
- Feature Request: Add API support to stub a parent class constructor. HOT 4
- .rejects doesn't match documentation HOT 2
- SyntaxError: Unexpected token . -> assert(opts?.sinonXhrLib, "No XHR lib passed in"); HOT 1
- Documentation of callIds
- Cannot stub private methods in native JavaScript classes HOT 1
- Calling replaceGetter invokes the original function HOT 4
- [Node v21.7.0] Impossible to stub `fetch` HOT 4
- Remove `const sandbox = sinon.createSandbox();` from examples unrelated to `sandbox`. HOT 1
- SinonFakeServer.respondWith not working with query params on 17.0.2 HOT 5
- sinon-test is broken when using sinon v17.0.2 HOT 2
- docs: overview of compatible nodejs versions HOT 4
- Mysterious undocumented v18 HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sinon.