Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Przestrzeń nazw: Microsoft.Azure.Workflows.UnitTesting.Definitions
Ta klasa tworzy pozorne wystąpienie akcji w przepływie pracy standardowej aplikacji logiki. Klasa *ActionMock
udostępnia wiele sposobów tworzenia pozornych akcji na potrzeby testowania standardowych przepływów pracy przy użyciu statycznych danych wyjściowych, warunków błędów lub dynamicznego zachowania na podstawie kontekstu wykonywania.
Zastosowanie
// Simple mock action with success status
var successAction = new ActionMock(TestWorkflowStatus.Succeeded, "SendEmail");
// A mock action with specific outputs
var outputAction = new ActionMock(
TestWorkflowStatus.Succeeded,
"HttpRequest",
new MockOutput {
StatusCode = 200,
Headers = JToken.Parse(@"{""Content-Type"": ""application/json""}"),
Body = JToken.Parse(@"{""result"": ""success"", ""id"": 12345}")
});
// Failed action with error information
var failedAction = new ActionMock(
TestWorkflowStatus.Failed,
"DatabaseWrite",
new TestErrorInfo(
ErrorResponseCode.BadRequest,
"Database connection failed"
));
// Dynamic action that changes behavior based on execution context
var dynamicAction = new ActionMock(
(context) => {
var inputs = context.ActionContext.ActionInputs;
var amount = (int)inputs["amount"];
if (amount > 1000) {
return new ActionMock(TestWorkflowStatus.Failed, "PaymentProcessing",
new TestErrorInfo(ErrorResponseCode.BadRequest, "Amount exceeds limit"));
}
return new ActionMock(TestWorkflowStatus.Succeeded, "PaymentProcessing",
new MockOutput { Body = JToken.Parse(@"{""transactionId"": ""ABC123""}") });
},
"DynamicPaymentAction");
Konstruktory
Konstruktor ze statycznymi danymi wyjściowymi
Tworzy pozorne wystąpienie dla elementu ActionMock
z danymi wyjściowymi statycznymi.
public ActionMock(TestWorkflowStatus status, string name = null, MockOutput outputs = null)
Nazwa | Opis | Typ | Wymagane |
---|---|---|---|
stan | Stan wyniku makiety akcji. | TestWorkflowStatus | Tak |
nazwa | Nazwa akcji pozoru. | sznurek | Nie. |
Wyniki | Pozorne dane wyjściowe statyczne. | MockOutput | Nie. |
// Example: Create a mock action with successful status and static outputs
var outputs = new MockOutput {
Body = JToken.Parse(@"{""result"": ""Operation completed""}"),
StatusCode = 200
};
var actionMock = new ActionMock(TestWorkflowStatus.Succeeded, "ProcessData", outputs);
Konstruktor z informacjami o błędzie
Tworzy pozorne wystąpienie programu z ActionMock
informacjami o błędzie statycznym.
public ActionMock(TestWorkflowStatus status, string name = null, TestErrorInfo error = null)
Nazwa | Opis | Typ | Wymagane |
---|---|---|---|
stan | Stan wyniku makiety akcji. | TestWorkflowStatus | Tak |
nazwa | Nazwa akcji pozoru. | sznurek | Nie. |
błąd | Informacje o błędzie akcji pozoru. | TestErrorInfo | Nie. |
// Example: Create an action mock with failed status and error information
var errorInfo = new TestErrorInfo(
ErrorResponseCode.InternalServerError,
"Service temporarily unavailable"
);
var actionMock = new ActionMock(TestWorkflowStatus.Failed, "ExternalAPICall", errorInfo);
Konstruktor z funkcją wywołania zwrotnego
Tworzy pozorne wystąpienie funkcji ActionMock
wywołania zwrotnego dla dynamicznych danych wyjściowych.
public ActionMock(Func<TestExecutionContext, ActionMock> onGetActionMock, string name = null)
Nazwa | Opis | Typ | Wymagane |
---|---|---|---|
onGetActionMock | Funkcja wywołania zwrotnego, aby uzyskać pozorną akcję | Func<TestExecutionContext, ActionMock> | Tak |
nazwa | Nazwa makiety akcji | sznurek | Nie. |
// Example: Create a mock action with dynamic outputs based on execution context
var actionMock = new ActionMock(
(context) => {
var actionName = context.ActionContext.ActionName;
var inputs = context.ActionContext.ActionInputs;
// Determine outputs dynamically based on context
if (actionName == "ValidateUser" && inputs["userId"]?.Value<int>() > 0) {
return new ActionMock(
TestWorkflowStatus.Succeeded,
"ValidateUser",
new MockOutput { Body = JToken.Parse(@"{""isValid"": true}") }
);
}
return new ActionMock(TestWorkflowStatus.Failed, "ValidateUser");
},
"ConditionalValidation");
Konstruktor JSON
Tworzy pozorne wystąpienie dla z ActionMock
formatu JSON.
internal ActionMock(TestWorkflowStatus status, string name = null, JToken outputs = null, TestErrorInfo error = null)
Nazwa | Opis | Typ | Wymagane |
---|---|---|---|
stan | Stan wyniku makiety akcji. | TestWorkflowStatus | Tak |
nazwa | Nazwa akcji pozoru. | sznurek | Nie. |
Wyniki | Pozorne wyjście. | MockOutput | Nie. |
błąd | Pozorny błąd. | TestErrorInfo | Nie. |
// Example: Create a mock action from JSON
var actionFromJson = JsonConvert.DeserializeObject<ActionMock>(File.ReadAllText(mockDataPath));
Właściwości
Ta klasa dziedziczy następujące właściwości z klasy bazowej OperationMock
.
Nazwa | Opis | Typ | Wymagane |
---|---|---|---|
Nazwa | Pobiera lub ustawia nazwę makiety operacji. | sznurek | Nie. |
Stan | Pobiera lub ustawia stan operacji. | TestWorkflowStatus | Nie. |
Wyniki | Pobiera lub ustawia wartość reprezentującą statyczne dane wyjściowe w formacie JSON. | JToken | Nie. |
Błąd | Pobiera lub ustawia błąd operacji. | TestErrorInfo | Nie. |