Comments (5)
It would be really nice to write it in order of thought. The current order requires coming back in most cases after you have figured out the type.
What I was thinking was the following;
myMock.Setup(
procedure (myMockType : T)
myMockType.MyMethod()
end).Returns<SomeType>(instanceOfSomeType);
or
myMock.Setup.MyMethod.Returns(instanceOfSomeType);
My method still needs to be called on the passed type. Due to not having lamda's this might not be elegant. The first option might be more possible.
from delphi-mocks.
Just a note after attempting briefly to implement an written form of the mock setup. It currently will require a rewrite of most of the supporting classes. This could be done where the current classes are kept as "fluent api" implementation, and another set are introduced as a "written api".
The change would need to be made in how expectations are registered. Instead of being registered when the method is called (fluent method) they would need to be registered when the behavior is defined. By its nature fluent api's are a reverse of what is written, therefore to get what I would like I would have reverse the fluent api implementation to a degree. This might be doubling up where its not really required.
Anyways... onto implementing the overload WillReturn method.
from delphi-mocks.
Baaahhh.... Damn interfaces not allowing generic functions. Back to the drawing-board.
from delphi-mocks.
I am pretty sure that is only possible with lambdas and generic helpers/extension methods. Both which does not exist in Delphi. But that is how some frameworks do it in C#.
from delphi-mocks.
Closing as not currently possible with delphi's implementation of generics on interfaces.
from delphi-mocks.
Related Issues (20)
- Some questions rather than an issue HOT 3
- Get rid of W1029 warning in Delphi compile mode HOT 4
- Need research if IStubSetup<T> can benefit from an overloaded method function WillReturn<TReturn>(const value : TReturn) : IWhen<T>; overload; HOT 2
- Memory leak there should not have memory leak HOT 2
- Typos in Sample1Main.pas HOT 1
- Status of Delphi XE support HOT 2
- Mocking an empty interface HOT 2
- TObjectProxy.Destroy raises "Invalid pointer operation". HOT 1
- Typo on Delphi.Mocks.Proxy.pas
- Some units have (apparently unnecessarily) Windows in the uses clause HOT 3
- Mock Objects HOT 1
- Remove copy of VSoft.WeakReference and use dpm package
- [discussion] Delphi Mock documentation HOT 7
- TMock<IMyInterface>.MyMethod(X) leads to access violation when X is a record type HOT 3
- Test fails with current version of Mocks, passes with old version HOT 2
- Calling virtual method with defined behavior can cause problems HOT 2
- Example code does not work HOT 1
- Not able to define behaviour for overloaded functions with different parameters. HOT 1
- WillReturn for public class property with private getter HOT 4
- Call to actual class method when mocking class with a non-virtual method HOT 1
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 delphi-mocks.