Compartir a través de


Clase TriggerMock

Espacio de nombres: Microsoft.Azure.Workflows.UnitTesting.Definitions

Esta clase crea una instancia ficticia para un desencadenador en un flujo de trabajo de aplicación lógica estándar. La TriggerMock clase proporciona varias maneras de crear desencadenadores ficticios para probar flujos de trabajo estándar mediante salidas estáticas, condiciones de error o comportamiento dinámico en función del contexto de ejecución.

Uso

// Simple trigger mock with success status
var successTrigger = new TriggerMock(TestWorkflowStatus.Succeeded, "HttpTrigger");

// Trigger mock with specific outputs
var outputTrigger = new TriggerMock(
    TestWorkflowStatus.Succeeded,
    "EmailTrigger",
    new MockOutput { 
        Body = JToken.Parse(@"{""subject"": ""Test Email"", ""from"": ""test@example.com""}") 
    });

// Failed trigger with error information
var failedTrigger = new TriggerMock(
    TestWorkflowStatus.Failed,
    "DatabaseTrigger",
    new TestErrorInfo(
        ErrorResponseCode.ConnectionError,
        "Failed to connect to database"
    ));

// Dynamic trigger that changes behavior based on execution context
var dynamicTrigger = new TriggerMock(
    (context) => {
        var actionName = context.ActionContext.ActionName;
        
        if (actionName == "ProcessOrder") {
            return new TriggerMock(
                TestWorkflowStatus.Succeeded, 
                "OrderTrigger",
                new MockOutput { Body = JToken.Parse(@"{""orderId"": 12345}") }
            );
        }
        
        return new TriggerMock(TestWorkflowStatus.Failed, "OrderTrigger");
    },
    "ContextAwareTrigger");

Constructores

Constructor con salidas estáticas

Crea una instancia ficticia para TriggerMock con salidas estáticas.

public TriggerMock(TestWorkflowStatus status, string name = null, MockOutput outputs = null)
Nombre Descripción Tipo Obligatorio
estado Estado del resultado del desencadenador ficticio TestWorkflowStatus
nombre El nombre del desencadenador ficticio cuerda / cadena No
Salidas Salidas estáticas ficticias MockOutput No
// Example: Create a mock trigger with successful status and static outputs
var outputs = new MockOutput { 
    Body = JToken.Parse(@"{""webhookData"": ""sample payload""}")
};
var triggerMock = new TriggerMock(TestWorkflowStatus.Succeeded, "WebhookTrigger", outputs);

Constructor con información de error

Crea una instancia ficticia para TriggerMock con información de error estática.

public TriggerMock(TestWorkflowStatus status, string name = null, TestErrorInfo error = null)
Nombre Descripción Tipo Obligatorio
estado Estado del resultado del desencadenador ficticio TestWorkflowStatus
nombre El nombre del desencadenador ficticio cuerda / cadena No
error Información de error del desencadenador ficticio TestErrorInfo No
// Example: Create a mock trigger with failed status and error information
var errorInfo = new TestErrorInfo(
    ErrorResponseCode.Unauthorized,
    "Authentication failed for trigger"
);
var triggerMock = new TriggerMock(TestWorkflowStatus.Failed, "SecureTrigger", errorInfo);

Constructor con función de devolución de llamada

Crea una instancia ficticia para TriggerMock con una función de devolución de llamada para salidas dinámicas.

public TriggerMock(Func<TestExecutionContext, TriggerMock> onGetTriggerMock, string name = null)
Nombre Descripción Tipo Obligatorio
onGetTriggerMock Función de devolución de llamada para obtener el desencadenador ficticio Func<TestExecutionContext, TriggerMock>
nombre El nombre del desencadenador ficticio cuerda / cadena No
// Example: Create a mock trigger with dynamic outputs based on execution context
var triggerMock = new TriggerMock(
    (context) => {
        var inputs = context.ActionContext.ActionInputs;
        var eventType = inputs["eventType"]?.Value<string>();
        
        // Return different mock based on event type
        if (eventType == "priority") {
            return new TriggerMock(
                TestWorkflowStatus.Succeeded, 
                "EventTrigger", 
                new MockOutput { Body = JToken.Parse(@"{""priority"": true}") }
            );
        }
        
        return new TriggerMock(TestWorkflowStatus.Succeeded, "EventTrigger");
    }, 
    "ConditionalEventTrigger");

Constructor JSON

Crea una instancia ficticia para TriggerMock a partir de JSON.

public TriggerMock(TestWorkflowStatus status, string name = null, JToken outputs = null, TestErrorInfo error = null)
Nombre Descripción Tipo Obligatorio
estado Estado del resultado del desencadenador ficticio TestWorkflowStatus
nombre El nombre del desencadenador ficticio cuerda / cadena No
Salidas Salidas ficticias MockOutput No
error El error ficticio TestErrorInfo No
// Example: Create a mock trigger from JSON
var triggerFromJson = JsonConvert.DeserializeObject<TriggerMock>(File.ReadAllText(mockDataPath));

Propiedades

Nombre Descripción Tipo Obligatorio
Nombre Nombre de la operación ficticia cuerda / cadena No
Estado Estado de la operación TestWorkflowStatus No
Salidas Salida estática en formato JSON JToken No
Error Error de operación TestErrorInfo No