Первый тест Moles - перенаправление не происходит - PullRequest
0 голосов
/ 14 июля 2010

Вот код. GetParentPath вызывается как обычно!

    [TestMethod]
    [HostType("Moles")]
    public void GetParentPath_slashOnEnd_returns()
    {
        var sapi = new MPhotobucketApi();
        sapi.GetParentPathString = s => s;

        var api = new PhotobucketApi();
        var parentPath = api.GetParentPath("hello/world/");

        Assert.AreEqual(parentPath, "hello");
    }

1 Ответ

1 голос
/ 14 июля 2010

Как вы написали свой тест, ваше перенаправление применяется только к экземпляру среды выполнения, внедренному в sapi. Вам нужно перехватить конструктор PhotobucketApi и перехватить там «будущий» экземпляр PhotobucketApi:

MPhotobucketApi.Contructor = (me) => {
    new MPhotobucketApi { GetParentPathString = s => s }; 
};
...

Другой подход заключается в том, чтобы перенаправить GetParentPath для всех экземпляров, выполнив следующее:

MPhotobucketApi.AllInstances.GetParentPathString = (me, s) => s;
...
...