Comments (9)
@srawlins how we can do such testing?
from mockito.
You can use thenAnswer. It isn't quite as nice, but spy was not going to work without reflection.
final ft = new FooExample();
final mock = new MockFooExample();
test('calculate', () {
when(mock.myCalc()).thenReturn(10);
when(mock.calculate()).thenAnswer(() => ft.calculate());
expect(mock.myCalc(), 10);
expect(mock.calculate(), 42);
});
from mockito.
Sorry no. Spy used mirrors which can't be used in dart AOT environments such as flutter and soon web. #27
I don't believe this will be possible using our current implementation. It would require a complete rewrite of mockito using codegen which isn't happening anytime soon, and the migration may have other downsides such as slower build/dev cycle times.
For what it's worth in our corpus of code (millions of lines of code) we aren't missing it. It was only used in a couple of places and was easy to migrate.
from mockito.
Essentially a spy is a proxy to real object. It would return mock result if you ask for configured it previously, but for anything else it just forward call to real object. Real object has no access to spy, so it will use real methods for all calls.
In your example ft.calculate() will be delegated to real object (as there is no stubbing for it defined) and real object will use real myCalc().
from mockito.
Thx for the clarification 👍
from mockito.
So, without spy how can we do this now?
from mockito.
Thanks for the help.
I have thought about thenAnswer,
but it can be tedious when I have to do partial mocking in a big class.
Do we have any plan to add back spy
api? or something like thenCallRealMethod()
http://static.javadoc.io/org.mockito/mockito-core/2.15.0/org/mockito/Mockito.html#partial_mocks
from mockito.
Any update on using Spy methods?
from mockito.
No; no current plans for supporting spies.
from mockito.
Related Issues (20)
- Verify constructor HOT 1
- How to test retrofit services with mockito HOT 6
- Question: dockito in dev_dependies? HOT 1
- Error The included part 'mocks.dart' must have a part-of directive. HOT 1
- `verify` failing test but showing in "All calls" HOT 1
- mockito:mockBuilder generator fail using MockSpec custom superclass HOT 5
- How to mock Dio.interceptors.add? HOT 1
- Support for extension-type/inline-class HOT 3
- Why is build_runner is succeeding with 0 outputs? HOT 3
- Support for real executions on Mocking classes HOT 1
- Bad state: Cannot call `when` within a stub response HOT 7
- Cannot create Mock in Dart 3.x: type 'Null' is not a subtype of type 'IOSink' HOT 1
- 'Null' is not a subtype of type 'Future<bool>' HOT 3
- Mocking a class which is created at runtime HOT 1
- Breaking change or typo? HOT 2
- How are we supposed to use any with non null parameters? HOT 2
- Extension type with generic
- Cannot generate mocks for class with method with parameter with default value with a single quote HOT 6
- Dart 3.4.3: invocation_matcher.dart Error: The class 'DeepCollectionEquality' can't be extended outside of its library because it's a final class. HOT 1
- Bad state: Asset URI is missing for abstract class JSObject HOT 2
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 mockito.