Partilhar via


Classe TriggerMock

Espaço de nomes: Microsoft.Azure.Workflows.UnitTesting.Definitions

Essa classe cria uma instância simulada para um gatilho em um fluxo de trabalho de aplicativo lógico padrão. A TriggerMock classe fornece várias maneiras de criar gatilhos fictícios para testar fluxos de trabalho padrão usando saídas estáticas, condições de erro ou comportamento dinâmico com base no contexto de execução.

Utilização

// 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");

Construtores

Construtor com saídas estáticas

Cria uma ocorrência simulada para TriggerMock com saídas estáticas.

public TriggerMock(TestWorkflowStatus status, string name = null, MockOutput outputs = null)
Nome Descrição Tipo Obrigatório
Situação O status do resultado do gatilho simulado TestWorkflowStatus Sim
nome O nome do gatilho simulado corda Não
saídas As saídas estáticas simuladas Saída Simulada Não
// 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);

Construtor com informações de erro

Cria uma instância simulada para TriggerMock com informações de erro estático.

public TriggerMock(TestWorkflowStatus status, string name = null, TestErrorInfo error = null)
Nome Descrição Tipo Obrigatório
Situação O status do resultado do gatilho simulado TestWorkflowStatus Sim
nome O nome do gatilho simulado corda Não
erro As informações de erro de gatilho simulado TestErrorInfo Não
// 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);

Construtor com função de retorno de chamada

Cria uma instância simulada para TriggerMock com uma função de retorno de chamada para saídas dinâmicas.

public TriggerMock(Func<TestExecutionContext, TriggerMock> onGetTriggerMock, string name = null)
Nome Descrição Tipo Obrigatório
onGetTriggerMock A função de retorno de chamada para obter o gatilho simulado Func<TestExecutionContext, TriggerMock> Sim
nome O nome do gatilho simulado corda Não
// 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");

JSON construtor

Cria uma instância simulada para TriggerMock a partir de JSON.

public TriggerMock(TestWorkflowStatus status, string name = null, JToken outputs = null, TestErrorInfo error = null)
Nome Descrição Tipo Obrigatório
Situação O status do resultado do gatilho simulado TestWorkflowStatus Sim
nome O nome do gatilho simulado corda Não
saídas As saídas simuladas Saída Simulada Não
erro O erro simulado TestErrorInfo Não
// Example: Create a mock trigger from JSON
var triggerFromJson = JsonConvert.DeserializeObject<TriggerMock>(File.ReadAllText(mockDataPath));

Propriedades

Nome Descrição Tipo Obrigatório
Nome O nome da operação simulada corda Não
Situação O status da operação TestWorkflowStatus Não
Saídas A saída estática no formato JSON JToken Não
Erro O erro de operação TestErrorInfo Não