Comments (4)
Not sure I understand this one, an example?
from fakeiteasy.
assuming:
public interface IInterface
{
IList Items { get; }
}
The following:
var fake = A.Fake();
fake.Items.Add("item");
should lead to fake.Items containing "item".
The thing I am not sure about is if this would be a breaking change. I think it is not.
If it makes sense to you I will implement it
from fakeiteasy.
It would be a breaking change and to me it would be unsuspected behaviour. Consider this:
var fake = A.Fake<IInterface>();
A.CallTo(() => fake.Items.Add(A._)).Throws(new Exception());
That wouldn't be possible if we did return a list.
I can't think of a real use case where this is beneficial. That something is exposed as IList<T> does in no way imply that the List<T> will be used. The behaviour of the Add-method may very well vary between implementors.
Maybe I'm missing a use case here?
from fakeiteasy.
That's true, that's a breaking change for that case.
I didn't have your example in any case yet.
The style I do TDD I would never have such a setup that's why I didn't have your use case in mind.
While thinking about it I come to the same conclusion. The things I had in mind are no real world use cases I would have. If any pop up again, I will rethink it and come up with a solution that has no breaking changes.
from fakeiteasy.
Related Issues (20)
- Feature request: ReturnsNextFromSequenceLazily() HOT 6
- Feature request: Then().Returns...() HOT 5
- Issue using Result Pattern and trying to fake a response
- Release 8.0.1 HOT 1
- Interface type property not return created object HOT 3
- How to fake a type that have `dynamic` (ExpandoObject) properties? HOT 3
- DoesNothing() and implicit creation options throws ArgumentException HOT 5
- Release 8.1.0 HOT 1
- Include README in NuGet package HOT 1
- Silence security vulnerability complaints over Microsoft.NETCore.App 2.1.0 HOT 2
- Release 8.2.0 HOT 1
- Fake does not work as argument constraint HOT 4
- Test fails on Version 8 but succeeds on Version 7 HOT 4
- Expose caught exception(s) in protected/abstract constructors HOT 10
- Invoke method after calling an Entities public method/behaviour HOT 7
- Release 8.3.0 HOT 1
- Captured argument has empty Values HOT 6
- Document how to use InternalsVisibleTo from project files HOT 3
- InvokesAsync - possible? HOT 5
- Inconsistent results when verifying received calls HOT 12
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 fakeiteasy.