0

返されるオブジェクトがセットアップオブジェクトと異なる可能性があるシナリオを教えてください。

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
4

2 に答える 2

0

代わりにBasicImaging.Factory使用する必要がありますIBaseClassMock.Object.Factory(つまり、設定したモック)。

于 2013-03-12T11:45:56.480 に答える
0

BasicImaging.Factory実際のモック ( IBaseClassMock.Factory) ですか? 違うと思う。

BasicImaging.Factory実際のコードの代わりにモックを使用するように、モックを挿入する必要があります。

于 2013-03-12T11:45:33.657 に答える