Comments (8)
@leegee This library is no longer maintained. I like it but there are no updates from the author and he didn't give access to anyone else to update the documentation or the code. I don't know what is the correct way, but you could use spy instead of mock.
class Foo {
static sayHello(): string {
return 'Nop';
}
}
const spyFoo = spy(Foo);
when(spyFoo.sayHello()).thenReturn('Yes');
console.log(Foo.sayHello()); // Will print out Yes
from ts-mockito.
You can try something like this:
class Foo {
static sayHello(): void {
console.log('hello')
}
}
const mockFoo = mock<typeof Foo>(Foo);
mockFoo.sayHello(); // no more error
This is how I get around this problem.
from ts-mockito.
@MatejSkrbis
I tried your code and use when
.
const mockFoo = mock<typeof Foo>(Foo);
mockFoo.sayHello(); // no more error
when(mockFoo.sayHello());
But I got this error. Could you run the test without error?
TypeError: mockFoo.sayHello is not a function
from ts-mockito.
@MatejSkrbis
I tried your code and usewhen
.const mockFoo = mock<typeof Foo>(Foo); mockFoo.sayHello(); // no more error when(mockFoo.sayHello());But I got this error. Could you run the test without error?
TypeError: mockFoo.sayHello is not a function
I've tried it and there is no error on my side.
I'm using latest packages of mocha and ts-mockito ("mocha": "8.2.1", "ts-mockito": "2.6.1", "typescript": "4.0.5")
from ts-mockito.
Mocking of static methods would be even nicer but the current state is that if the class has any static methods, they cannot be called on the mock version (rendering this package unusable in my case)
ie:
class Foo {
static sayHello() {
console.log('hello')
}
}
const mockFoo = mock(Foo);
mockFoo.sayHello() // error TS2339: Property 'sayHello' does not exist on type 'Foo'.
from ts-mockito.
Any updates on this?
from ts-mockito.
The above example works for me, but I can't get it working IRL, where the static method to be mocked is in a dependency of the object being tested: could the documentation be updated to include the correct way to handle such a scenario?
from ts-mockito.
That was kind of you, thank you.
from ts-mockito.
Related Issues (20)
- Verify if a function is called in a resolved promise
- (instance(mock(MyClass)) instanceof MyClass) is false. HOT 6
- Verify on interface mock does not work (2.6.1)
- Argument Matcher anyBoolean() Missing
- reset(mock1, mock2) expects that mock1 and mock2 have the same type. HOT 1
- When with literal object argument not working HOT 4
- Visibility/log on arguments mismatch in function call HOT 1
- Is it going to be maintained? HOT 32
- verify() is not able to verify arguments except for the last call HOT 1
- Captured arguments are changed by object changes HOT 1
- Proxy created with instance(mockedClass) gets "then" function -> Results in Timeout when Using Nestjs DI HOT 2
- Interface mocks cannot be bound in inversify containers HOT 5
- can you mock functions from a module?
- TypeError when using `match` with a string
- How to mock a builder pattern
- How to mock catchError HOT 1
- anyOfType Matcher
- Feature request: better toString() outputs showing expected value HOT 2
- Question: How to call original method on spy after interception
- How to mock an async function that sets two values in the MockClass?
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 ts-mockito.