다음을 통해 공유


TriggerMock 클래스

네임스페이스: Microsoft.Azure.Workflows.UnitTesting.Definitions

이 클래스는 표준 논리 앱 워크플로에서 트리거에 대한 모의 인스턴스를 만듭니다. 이 클래스는 TriggerMock 정적 출력, 오류 조건 또는 실행 컨텍스트를 기반으로 하는 동적 동작을 사용하여 표준 워크플로를 테스트하기 위한 모의 트리거를 만드는 여러 가지 방법을 제공합니다.

사용법

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

생성자

정적 출력이 있는 생성자

정적 출력을 사용하여 TriggerMock 모의 인스턴스를 만듭니다.

public TriggerMock(TestWorkflowStatus status, string name = null, MockOutput outputs = null)
이름 설명 유형 필수
상태 모의 트리거 결과 상태 TestWorkflowStatus
이름 모의 트리거 이름 문자열 아니오
출력 모의 정적 출력 MockOutput 아니오
// 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);

오류 정보가 있는 생성자

정적 오류 정보를 사용하여 모의 인스턴스를 TriggerMock 만듭니다.

public TriggerMock(TestWorkflowStatus status, string name = null, TestErrorInfo error = null)
이름 설명 유형 필수
상태 모의 트리거 결과 상태 TestWorkflowStatus
이름 모의 트리거 이름 문자열 아니오
오류 모의 트리거 오류 정보 TestErrorInfo 아니오
// 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);

콜백 함수를 사용하여 생성자

동적 출력에 대한 TriggerMock 콜백 함수를 사용하여 모의 인스턴스를 만듭니다.

public TriggerMock(Func<TestExecutionContext, TriggerMock> onGetTriggerMock, string name = null)
이름 설명 유형 필수
onGetTriggerMock 모의 트리거를 가져오는 콜백 함수 Func<TestExecutionContext, TriggerMock>
이름 모의 트리거 이름 문자열 아니오
// 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 생성자

JSON에서 모의 인스턴스를 TriggerMock 만듭니다.

public TriggerMock(TestWorkflowStatus status, string name = null, JToken outputs = null, TestErrorInfo error = null)
이름 설명 유형 필수
상태 모의 트리거 결과 상태 TestWorkflowStatus
이름 모의 트리거 이름 문자열 아니오
출력 모의 출력 MockOutput 아니오
오류 모의 오류 TestErrorInfo 아니오
// Example: Create a mock trigger from JSON
var triggerFromJson = JsonConvert.DeserializeObject<TriggerMock>(File.ReadAllText(mockDataPath));

속성

이름 설명 유형 필수
이름 모의 작업의 이름 문자열 아니오
상태 작업 상태 TestWorkflowStatus 아니오
출력물 JSON 형식의 정적 출력 JToken 아니오
오류 작업 오류 TestErrorInfo 아니오