-
-
Notifications
You must be signed in to change notification settings - Fork 55
Closed
Description
I haven't validated this minimum-reproducible sample, but ran into this on a project:
interface IService { }
class ConcreteDependency
{
public ConcreteDependency(IService service) { }
}
class SystemUnderTest
{
public SystemUnderTest(
IService service,
ConcreteDependency dependency)
{
}
}
[Fact]
public void Test()
{
AutoMocker mocker = new();
_ = mocker.CreateInstance<SystemUnderTest>();
}Actual
ConcreteDependency and SystemUnderTest receive different instances of IService and the one passed to ConcreteDependency is kept around as the resolved instance.
Expected
Both classes should receive the same mock.
"Workarounds"
- Move the
ConcreteDependencyparameter to before the interface. - Resolve/cache the mock before calling
CreateInstance. i.e._ = mocker.GetMock<IService>();
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels