是否可以告诉场景何时返回的对象可能与设置对象不同?
执行src代码时,Object Id
中调试期间设置的Setup
是不同的。
interface IBaseClass
{
IFactory aFactory;
}
class Point
{
Point(int x, int y)
{
this.x = x;
this.y = y;
}
int x;
int y;
}
interface Factory
{
public AnObject create(string a, Point pt);
}
测试代码
var anObjectMock = new Mock<AnObject> { DefaultValue = DefaultValue.Mock };
var sMatcher = It.Is<string>(s => s.Equals("aString"));
var ptMatcher = It.Is<Point>(p => (p.x == CONST_X && p.y == CONST_Y));
var FactoryMock = Mock.Get<IFactory>(IBaseClassMock.Object.Factory);
FactoryMock.Setup(f => f.create(sMatcher, ptMatcher)).Returns(anObjectMock.Object); // Say ObjectId is #1
SRC
Object obj = BasicImaging.Factory.create("aString", new Point(CONST_X, CONST_Y));
// Getting no ObjectId
答案 0 :(得分:0)
BasicImaging.Factory
是否是实际模拟(IBaseClassMock.Factory
)?我想不。
您需要将模拟注入BasicImaging.Factory
,因此它使用模拟而不是实际代码。
答案 1 :(得分:0)
您应该使用BasicImaging.Factory
(即您设置的模拟),而不是IBaseClassMock.Object.Factory
。