Имитация метода для модульного тестирования

Я хочу поиздеваться над приведенным ниже методом, который принимает параметры для модульного тестирования с использованием подделок и прокладок. Я понятия не имею, что это ново для меня. Любые идеи будут полезны.

public string Renotify(int[] userIds)
{
     var notify = new NotificationPublisher();
     var message = "A request has been awaiting for your approval. Please check the application for details to approve the request ";
     var subject = "Logos Approval Notification";

     if (userIds.Length < 1)
         return "Please select users to notify";

     List<NotificationUser> userList = userIds.Select(t => new NotificationUser { userId = t }).ToList();
     notify.SendNotification(userList, message, subject);
     return "Success - Approvers Renotified";

}

person beans    schedule 30.07.2015    source источник


Ответы (1)


Вы не можете издеваться над методом, скажем, это не имеет смысла, вы издеваетесь над интерфейсами, которые используются тем, что вы хотите протестировать.

Скорее, вы можете, но я не уверен, что это то, чего вы на самом деле хотите.

e.g.

public class Foo
{
    private readonly IBar _bar;

    public Foo(IBar bar)
    {
        _bar = bar;
    }

    public void MyMethodToTest()
    {
        // Some stuff
        _bar.SomethingToBeMocked();
        //some more stuff
    }
}

Интерфейс IBar:

public IBar
{
    void SomethingToBeMocked();
}

Вы издеваетесь над интерфейсом IBar, а затем настраиваете ожидаемый вызов на IBar.SomethingToBeMocked()

person BanksySan    schedule 30.07.2015