Test Aufrufe von privaten Methoden mit moq

Habe ich folgende Methode, die ich zum test mit Moq. Das problem ist, dass jede Methode aufgerufen, in der switch-Anweisung ist private, einschließlich der PublishMessage am Ende. Aber diese Methode (ProcessMessage) ist öffentlich. Wie kann ich testen, so dass ich sicherstellen kann, dass die Aufrufe in Abhängigkeit der parameter? Beachten Sie, dass ich nicht die Prüfung der privaten Methoden, auf die ich nur testen will, dem "ruft". Ich möchte mock diese privaten Methoden und prüfen Sie, ob Sie genannt werden mithilfe von Setup, aber Moq nicht unterstützt Spott private Methoden.

public void ProcessMessage(DispenserMessageDataContract dispenserMessage)
    {
        var transOptions = new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted };
        using (var scope = new TransactionScope(TransactionScopeOption.RequiresNew, transOptions))
        {
            switch (dispenserMessage.Type)
            {
                case DispenserMessageType.AckNack:
                    UpdateAckNackMessageQueue(dispenserMessage);
                    break;

                case DispenserMessageType.FillRequest:
                    CreateFillRequestMessageQueue(dispenserMessage);
                    break;

                case DispenserMessageType.FillEvent:
                    UpdateFillEventMessageQueue(dispenserMessage);
                    break;

                case DispenserMessageType.RequestInventory:
                    CreateRequestInventoryMessageQueue(dispenserMessage);
                    break;

                case DispenserMessageType.ReceiveInventory:
                    CreateReceiveInventoryMessageQueue(dispenserMessage);
                    break;
            }

            scope.Complete();
        }

        PublishMessage(dispenserMessage);
    }
InformationsquelleAutor Ray | 2014-01-08
Schreibe einen Kommentar