Suppose I have following class called SomeClass
as defined:
public SomeClass
{
private IThingFactory _thingFactory;
public SomeClass(IThingFactory thingFactory)
{
_thingFactory = thingFactory;
}
public IThing CreateThing(int a, int b, string c)
{
IThing thing = _thingFactory.MakeEmptyThing();
thing.MakeFromFields(a, b, c);
return thing;
}
}
The spec of the CreateThing(int a, int b, string c)
method is that it takes an int a
, int b
, string c
and returns an IThing
with the corresponding properties. (so internally maybe new Thing(a, b, c)
)
However the implementation delegates that work to a IThingFactory
and Thing
populates itself.
So now I'm trying to unit test the method CreateThing()
, but I'm not exactly sure how it should work.
Here's what I tried:
Based off of the principles of mocking dependencies, I created a Mock<IThingFactory>
and gave it to the constructor of SomeClass
_mockThingFactory = new Mock<IThingFactory>();
someClass = new SomeClass(_mockThingFactory.Object);
Afterwards, I called the method under test
IThing thing = _someClass.CreateThing(It.IsAny<int>(),
It.IsAny<int>(),
It.IsAny<string>>());
And to assert, I'm not sure. Should I verify that MakeEmptyThing()
was called? What do I do with thing.MakeFromFields(a, b, c);
?
Aucun commentaire:
Enregistrer un commentaire