I am having trouble expressing the following code in a declarative fashion:
[Theory]
[InlineData(@"-o=C:\Temp\someFile -p=1")]
[InlineData(@"-p=1 -o=C:\Temp\someFile")]
public void ParseMissingParameterShouldReturnCorrectResult(
string argsString
)
{
.....
var fixture = new Fixture();
fixture.Register<IFoo>(fixture.Create<Foo>);
fixture.Register<IBar>(fixture.Create<Bar>);
var sut = fixture.Create<SomeClass>();
.....
}
In my production code, I've got something like:
new SomeClass(new Foo(new Bar))
with the constructor of SomeClass being defined as:
public SomeClass(IFoo foo)
TIA,
David
EDIT:
SomeClass looks like
public class SomeClass : IQux
{
private readonly IFoo _foo;
public SomeClass(IFoo foo)
{
_foo= foo;
}
You can declare the SUT (which is the
SomeClass
type) as a parameter on the test method:An easy way to create the
[InlineAutoMockData]
attribute is:Note:
If you also need to setup expectations on the
IFoo
orIBar
mocked instances you can freeze them so that the sameFrozen
instances are passed in theSomeClass
instance: