Testfälle für „createUiDefinition.json“
In diesem Artikel werden die Tests beschrieben, die mit dem Vorlagen-Testtoolkit für createUiDefinition.json-Dateien ausgeführt werden. Die Beispiele umfassen die Testnamen und Codebeispiele, die die Tests bestehen (pass) oder nicht bestehen (fail).
Das Toolkit enthält Testfälle für Azure Resource Manager-Vorlagen (ARM-Vorlagen) und die Hauptvorlagendateien namens azuredeploy.json oder maintemplate.json. Wenn das Verzeichnis eine createUiDefinition.json-Datei enthält, werden spezifische Tests für Benutzeroberflächen-Steuerelemente ausgeführt. Weitere Informationen zur Ausführungsweise von Tests oder eines bestimmten Tests finden Sie unter Testparameter.
Die createUiDefinition.json-Datei erstellt benutzerdefinierte Benutzeroberflächen-Steuerelemente unter Verwendung von Elementen und Funktionen.
Verifizieren, dass Vorlagenparameter Werte zulassen
Testname: Allowed Values Should Actually Be Allowed (Zulässige Werte sollten tatsächlich zulässig sein)
Dieser Test überprüft, ob Werte für jedes Steuerelement in createUiDefinition.json in den Parametern der Hauptvorlage zulässig sind. Die Parameter werden anhand des Namens zwischen der Hauptvorlage und der createUiDefinition.json-Datei zugeordnet.
Die Parameter der Hauptvorlage müssen die Werte aus den allowedValues
des jeweiligen Steuerelements akzeptieren. Der Test überprüft außerdem, ob im Abschnitt outputs
der Datei createUiDefinition.json auf das Steuerelement verwiesen wird.
Dieser Test überprüft die Hauptvorlage und die Datei createUiDefinition.json. Ein Beispiel für die Datei createUiDefinition.json wird im Anschluss an die Hauptvorlagenbeispiele gezeigt.
Das folgende Beispiel besteht den Test nicht, weil der Parametername combo
der Hauptvorlage nicht mit dem Parameternamen comboBox
des Steuerelements übereinstimmt.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"combo": {
"type": "string",
"defaultValue": "two"
}
},
"resources": [],
"outputs": {
"comboBoxOutput": {
"type": "string",
"value": "[parameters('combo')]"
}
}
}
Das folgende Beispiel besteht den Test nicht, weil der Parametertyp int
der Hauptvorlage den string
-Wert des Steuerelements nicht akzeptiert. Und wenn ein Parameter einer Hauptvorlage einen defaultValue
definiert, muss er ein gültiger value
in den allowedValues
des jeweiligen Steuerelements sein.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"comboBox": {
"type": "int",
"defaultValue": 4
}
},
"resources": [],
"outputs": {
"comboBoxOutput": {
"type": "string",
"value": "[parameters('combo')]"
}
}
}
Das folgende Beispiel besteht den Test, weil der Parametername der Hauptvorlage mit dem Parameternamen des Steuerelements übereinstimmt. Außerdem ist der Parametertyp der Vorlage eine string
mit einem defaultValue
, der in den allowedValues
des Steuerelements angegeben ist.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"comboBox": {
"type": "string",
"defaultValue": "two"
}
},
"resources": [],
"outputs": {
"comboBoxOutput": {
"type": "string",
"value": "[parameters('comboBox')]"
}
}
}
Die Datei createUiDefinition.json für dieses Beispiel:
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [],
"steps": [
{
"name": "demoComboBox",
"label": "demoComboBoxLabel",
"elements": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"defaultValue": "Value two",
"toolTip": "This is a tool tip",
"constraints": {
"allowedValues": [
{
"label": "Value one",
"description": "The value to select for option 1.",
"value": "one"
},
{
"label": "Value two",
"description": "The value to select for option 2.",
"value": "two"
}
],
"required": true
},
"visible": true
}
]
}
],
"outputs": {
"comboBox": "[steps('demoComboBox').comboBox]"
}
}
}
Es müssen Ausgabesteuerelemente vorhanden sein
Testname: Controls In Outputs Must Exist (Steuerelemente in Ausgaben müssen vorhanden sein)
Steuerelemente, die im Abschnitt outputs
verwendet werden, müssen in einem Element an anderer Stelle in createUiDefinition.json vorhanden sein. Der Name, auf den in outputs
verwiesen wird, müssen einem in basics[]
oder steps[]
verwendeten Namen entsprechen.
Das folgende Beispiel besteht den Test nicht.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "nameDoesNotMatchOutput",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"comboBox": "[basics('comboBox')]"
}
}
}
Das folgende Beispiel besteht den Test.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"comboBox": "[basics('comboBox')]"
}
}
}
Eigenschaften müssen Werte enthalten
Testname: CreateUIDefinition Must Not Have Blanks (CreateUIDefinition darf keine Leerstellen enthalten)
Eigenschaften müssen Werte enthalten. Erforderliche Eigenschaften müssen gültige Werte verwenden. Optionale Eigenschaften, die leer sind, sollten entfernt werden. Der Test lässt leere "basics": []
, "steps": []
oder defaultValue
zu.
Das folgenden Beispiel besteht den Test nicht, weil label
, placeholder
und toolTip
leer sind.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "",
"placeholder": "",
"defaultValue": "",
"toolTip": ""
}
],
"steps": [],
"outputs": {
"comboBox": "[basics('comboBox')]"
}
}
}
Das folgenden Beispiel besteht den Test, weil label
und toolTip
Werte besitzen und placeholder
entfernt wurde.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"defaultValue": "",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"comboBox": "[basics('comboBox')]"
}
}
}
Verwenden eines gültigen Schemas und einer gültigen Version
Testname: CreateUIDefinition Should Have Schema (CreateUIDefinition sollte über ein Schema verfügen)
Die Datei createUiDefinition.json muss eine $schema
-Eigenschaft enthalten und ein gültiges $schema
sowie eine gültige version
verwenden. Die Versionszahlen in $schema
und version
müssen übereinstimmen.
Das folgende Beispiel besteht den Test nicht.
{
"$schema": "https://schema.management.azure.com/schemas/0.9.9-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.9.9-preview"
}
Das folgenden Beispiel besteht den Test, weil es das neueste $schema
und die aktuellste version
verwendet.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview"
}
Kein Ausblenden von Anmeldeinformationen
Testname: Credential Confirmation Should Not Be Hidden (Bestätigung von Anmeldeinformationen sollte nicht ausgeblendet werden)
Dieser Test überprüft, ob Anmeldeinformationen für Microsoft.Common.PasswordBox oder Microsoft.Compute.CredentialsCombo bestätigt werden. Die hideConfirmation
-Eigenschaft sollte auf false
festgelegt werden, damit die Bestätigung sichtbar ist.
Das folgende Beispiel besteht den Test nicht, weil hideConfirmation
den Wert true
hat.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "credentials",
"type": "Microsoft.Compute.CredentialsCombo",
"label": {
"password": "Password",
"confirmPassword": "Confirm password"
},
"toolTip": {
"password": "Type your credentials"
},
"constraints": {
"required": true,
"customPasswordRegex": "^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d]{12,}$",
"customValidationMessage": "The password must be alphanumeric, contain at least 12 characters, and have at least 1 letter and 1 number."
},
"options": {
"hideConfirmation": true
},
"osPlatform": "Windows",
"visible": true
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"credentials": "[basics('credentials')]"
}
}
}
Das folgende Beispiel besteht den Test, weil hideConfirmation
den Wert false
hat.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "credentials",
"type": "Microsoft.Compute.CredentialsCombo",
"label": {
"password": "Password",
"confirmPassword": "Confirm password"
},
"toolTip": {
"password": "Type your credentials"
},
"constraints": {
"required": true,
"customPasswordRegex": "^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d]{12,}$",
"customValidationMessage": "The password must be alphanumeric, contain at least 12 characters, and have at least 1 letter and 1 number."
},
"options": {
"hideConfirmation": false
},
"osPlatform": "Windows",
"visible": true
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"credentials": "[basics('credentials')]"
}
}
}
Verwenden des richtigen Handlers
Testname: Handler Must Be Correct (Handler muss korrekt sein)
Verwenden Sie Microsoft.Azure.CreateUIDef
oder Microsoft.Compute.MultiVm
in der Datei createUIDefinition.json.
Das folgende Beispiel besteht den Test nicht.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.",
"version": "0.1.2-preview"
}
Das folgende Beispiel besteht den Test.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview"
}
Kein Ausblenden vorhandener Ressourcen
Testname: HideExisting Must Be Correctly Handled (HideExisting muss korrekt gehandhabt werden)
Wenn hideExisting
0 auf false
festgelegt ist oder ausgelassen wird, muss outputs
resourceGroup
und newOrExisting
enthalten. Die Standardeinstellung für hideExisting
ist false
.
Beispiele für Steuerelementttypen, die hideExisting
umfassen, sind Microsoft.Storage.StorageAccountSelector, Microsoft.Network.PublicIpAddressCombo oder Microsoft.Network.VirtualNetworkCombo.
Das folgende Beispiel besteht den Test nicht.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "storage",
"type": "Microsoft.Storage.StorageAccountSelector",
"label": "Storage account",
"toolTip": "This is a demo storage account",
"defaultValue": {
"name": "storageaccount01",
"type": "Premium_LRS"
},
"options": {
"hideExisting": false
},
"visible": true
}
],
"steps": [],
"outputs": {
"location": "[location()]"
}
}
}
Das folgende Beispiel besteht den Test.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "storage",
"type": "Microsoft.Storage.StorageAccountSelector",
"label": "Storage account",
"toolTip": "This is a demo storage account",
"defaultValue": {
"name": "storageaccount01",
"type": "Premium_LRS"
},
"options": {
"hideExisting": false
},
"visible": false
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"resourceGroup": "[basics('storage').resourceGroup]",
"newOrExisting": "[basics('storage').newOrExisting]"
}
}
}
Verwenden von Standorten in Ausgaben
Testname: Location Should Be In Outputs (Standort sollte in Ausgaben vorhanden sein)
Der Abschnitt outputs
sollte einen Standort unter Verwendung der Funktion location enthalten.
Das folgenden Beispiel besteht den Test nicht, weil outputs
keinen Standort enthält.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"comboBox": "[basics('comboBox')]"
}
}
}
Das folgende Beispiel besteht den Test.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"comboBox": "[basics('comboBox')]",
"location": "[location()]"
}
}
}
Einschließen von Steuerelementausgaben in Voralgenparameter
Testname: Outputs Must Be Present In Template Parameters (Ausgabe muss in Vorlagenparametern vorhanden sein)
Der Test überprüft, ob createUiDefinition.json einen Abschnitt outputs
enthält. Der Test überprüft außerdem, ob diese outputs
im Abschnitt parameters
der Hauptvorlage definiert sind. Die Namen müssen übereinstimmen, weil Parameter anhand des Namens zwischen der createUiDefinition.json-Datei und der Hauptvorlage zugeordnet werden.
Dieser Test überprüft die Hauptvorlage und die Datei createUiDefinition.json. Ein Beispiel für die Datei createUiDefinition.json wird im Anschluss an die Hauptvorlagenbeispiele gezeigt.
Das folgende Beispiel besteht den Test nicht, weil die Hauptvorlage den Parameter comboBox
aus dem Abschnitt outputs
der Datei createUiDefinition.json nicht enthält.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [],
"outputs": {
"location": {
"type": "string",
"value": "[parameters('location')]"
}
}
}
Das folgende Beispiel besteht den Test, weil die Hauptvorlage den Parameter comboBox
enthält.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"comboBox": {
"type": "string",
"defaultValue": "two"
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [],
"outputs": {
"comboBox": {
"type": "string",
"value": "[parameters('comboBox')]"
},
"location": {
"type": "string",
"value": "[parameters('location')]"
}
}
}
Die Datei createUiDefinition.json für dieses Beispiel:
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"comboBox": "[basics('comboBox')]",
"location": "[location()]"
}
}
}
Parameter ohne Standardwert müssen in Ausgaben vorhanden sein
Testname: Parameters Without Default Must Exist In CreateUIDefinition (Parameter ohne Standardwert müssen in CreateUIDefinition vorhanden sein)
Parameter in der Hauptvorlage ohne einen Standardwert müssen im Abschnitt outputs
der Datei createUiDefinition.json vorhanden sein.
Dieser Test überprüft die Hauptvorlage und die Datei createUiDefinition.json. Ein Beispiel für die Datei azuredeploy.json wird im Anschluss an das Beispiel für das Steuerelement gezeigt.
Das folgende Beispiel besteht den Test nicht, weil der Abschnitt outputs
der Datei createUiDefinition.json nicht den Parameter comboBox
der Hauptvorlage enthält.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"location": "[location()]"
}
}
}
Das folgende Beispiel besteht den Test, weil createUiDefinition.json den Parameter comboBox
im Abschnitt outputs
enthält.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"comboBox": "[basics('comboBox')]",
"location": "[location()]"
}
}
}
Die Datei azuredeploy.json für dieses Beispiel. Der Parameter comboBox
hat keinen Standardwert.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"comboBox": {
"type": "string"
},
"location": {
"type": "string"
}
},
"resources": [],
"outputs": {
"comboBox": {
"type": "string",
"value": "[parameters('comboBox')]"
},
"location": {
"type": "string",
"value": "[parameters('location')]"
}
}
}
Verwenden eines sicheren Parameters mit Kennwortfeld
Testname: Password Textboxes Must Be Used For Password Parameters (Kennworttextfelder müssen für Kennwortparameter verwendet werden)
Dieser Test überprüft, ob ein Microsoft.Common.PasswordBox-Element im Abschnitt parameters
der Hauptvorlage und im Abschnitt outputs
der Datei createUiDefinition.json definiert ist. Der Parametertyp der Hauptvorlage für ein Kennwortfeld muss secureString
oder secureObject
sein.
Dieser Test überprüft die Hauptvorlage und die Datei createUiDefinition.json. Ein Beispiel für die Datei createUiDefinition.json wird im Anschluss an die Hauptvorlagenbeispiele gezeigt.
Das folgende Beispiel besteht den Test nicht, weil der Parameter passwordBox
der Hauptvorlage ein string
ist.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"passwordBox": {
"type": "string"
},
"location": {
"type": "string"
}
},
"resources": [],
"outputs": {
"location": {
"type": "string",
"value": "[parameters('location')]"
}
}
}
Das folgende Beispiel besteht den Test, weil der Parameter passwordBox
der Hauptvorlage ein secureString
ist.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"passwordBox": {
"type": "secureString"
},
"location": {
"type": "string"
}
},
"resources": [],
"outputs": {
"location": {
"type": "string",
"value": "[parameters('location')]"
}
}
}
Die Datei createUiDefinition.json für dieses Beispiel:
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "passwordBox",
"type": "Microsoft.Common.PasswordBox",
"label": {
"password": "Password",
"confirmPassword": "Confirm password"
},
"toolTip": "Type a password"
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"passwordBox": "[basics('passwordBox')]"
}
}
}
Kennwortfeld erfordert Mindestlänge
Testname: PasswordBoxes Must Have Min Length (Kennwortfelder müssen eine Mindestlänge besitzen)
Der Test überprüft, ob das Microsoft.Common.PasswordBox-Element constraints
mit einem regex
verwendet, der mindestens 12 Zeichen erfordert.
Das folgende Beispiel besteht den Test nicht, weil keine constraints
vorhanden sind.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "passwordBox",
"type": "Microsoft.Common.PasswordBox",
"label": {
"password": "Password",
"confirmPassword": "Confirm password"
},
"toolTip": "Type a password"
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"passwordBox": "[basics('passwordBox')]"
}
}
}
Das folgende Beispiel besteht den Test, weil der regex
mindestens 12 Zeichen erfordert.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "passwordBox",
"type": "Microsoft.Common.PasswordBox",
"label": {
"password": "Password",
"confirmPassword": "Confirm password"
},
"toolTip": "Type a password",
"constraints": {
"required": true,
"regex": "^[a-zA-Z0-9]{12,}$",
"validationMessage": "Password must be at least 12 characters long, contain only numbers and letters"
}
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"passwordBox": "[basics('passwordBox')]"
}
}
}
Textfeld muss Validierung verwenden
Testname: Textboxes Are Well Formed (Textfelder sind wohlgeformt)
Verwenden Sie eine Validierung mit Textfeldern, um auf constraints
zu prüfen, die einen regex
und eine message
enthalten.
Das folgende Beispiel besteht den Test nicht.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "textBox",
"type": "Microsoft.Common.TextBox",
"label": "Text box",
"toolTip": "Type 1-30 alphanumeric characters",
"placeholder": "Type your text here",
"visible": true
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"textBox": "[basics('textBox')]"
}
}
}
Das folgende Beispiel besteht den Test.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "textBox",
"type": "Microsoft.Common.TextBox",
"label": "Text box",
"toolTip": "Type 1-30 alphanumeric characters",
"placeholder": "Type your text here",
"constraints": {
"required": true,
"validations": [
{
"regex": "^[a-z0-9A-Z]{1,30}$",
"message": "Only 1-30 characters alphanumeric characters are allowed."
}
]
},
"visible": true
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"textBox": "[basics('textBox')]"
}
}
}
QuickInfo (toolTip) muss mit einem Wert vorhanden sein
Testname: Tooltips Should Be Present (QuickInfos sollten vorhanden sein)
Dieser Test überprüft, ob die toolTip
-Eigenschaft vorhanden ist und einen Wert enthält.
Das folgende Beispiel besteht den Test nicht.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": ""
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"comboBox": "[basics('comboBox')]"
}
}
}
Das folgende Beispiel besteht den Test.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "comboBox",
"type": "Microsoft.Common.DropDown",
"label": "Example drop down",
"toolTip": "This is a tool tip"
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"comboBox": "[basics('comboBox')]"
}
}
}
Kein Festsetzen eines Standardbenutzernamens
Testname: Usernames Should Not Have A Default (Benutzernamen sollten keinen Standardwert haben)
Der Test überprüft, ob für Microsoft.Compute.UserNameTextBox ein defaultValue
festgelegt ist.
Das folgenden Beispiel besteht den Test nicht, weil ein defaultValue
angegeben ist.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "userNameBox",
"type": "Microsoft.Compute.UserNameTextBox",
"label": "User name",
"defaultValue": "admin",
"toolTip": "Enter your user name",
"osPlatform": "Windows"
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"userNameBox": "[basics('userNameBox')]"
}
}
}
Das folgende Beispiel besteht den Test.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "userNameBox",
"type": "Microsoft.Compute.UserNameTextBox",
"label": "User name",
"toolTip": "Enter your user name",
"osPlatform": "Windows"
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"userNameBox": "[basics('userNameBox')]"
}
}
}
Verwenden einer Meldung mit Validierungen
Testname: Validations Must Have Message (Validierungen müssen eine Meldung besitzen)
Dieser Test überprüft, ob jegliche validations
in createUiDefinition.json eine message
enthalten.
Das folgenden Beispiel besteht den Test nicht, weil die Validierung des regex
keine message
enthält.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "textBox",
"type": "Microsoft.Common.TextBox",
"label": "Text box",
"toolTip": "Type 1-30 alphanumeric characters",
"placeholder": "Type your text here",
"constraints": {
"required": true,
"validations": [
{
"regex": "^[a-z0-9A-Z]{1,30}$"
}
]
},
"visible": true
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"textBox": "[basics('textBox')]"
}
}
}
Das folgende Beispiel besteht den Test.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "textBox",
"type": "Microsoft.Common.TextBox",
"label": "Text box",
"toolTip": "Type 1-30 alphanumeric characters",
"placeholder": "Type your text here",
"constraints": {
"required": true,
"validations": [
{
"regex": "^[a-z0-9A-Z]{1,30}$",
"message": "Only 1-30 characters alphanumeric characters are allowed."
}
]
},
"visible": true
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"textBox": "[basics('textBox')]"
}
}
}
Größen virtueller Computer müssen übereinstimmen
Testname: VM Sizes Must Match Template (VM-Größen müssen mit Vorlage übereinstimmen)
Dieser Test überprüft, ob ein Microsoft.Compute.SizeSelector im Abschnitt outputs
der Datei createUiDefinition.json und im Abschnitt parameters
der Hauptvorlage vorhanden ist. Parameter der Hauptvorlage, die einen defaultValue
angeben, müssen mit einem Wert in allowedSizes
des Steuerelements übereinstimmen.
Dieser Test überprüft die Hauptvorlage und die Datei createUiDefinition.json. Ein Beispiel für die Datei createUiDefinition.json wird im Anschluss an die Hauptvorlagenbeispiele gezeigt.
Das folgende Beispiel besteht den Test nicht, weil der defaultValue
der Hauptvorlage keinem Wert in allowedSizes
entspricht.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string"
},
"vmSize": {
"type": "string",
"defaultValue": "Standard_D9"
}
},
"resources": [],
"outputs": {
"location": {
"type": "string",
"value": "[parameters('location')]"
},
"vmSize": {
"type": "string",
"value": "[parameters('vmSize')]"
}
}
}
Das folgende Beispiel besteht den Test, weil der defaultValue
der Hauptvorlage einem Wert in allowedSizes
entspricht.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string"
},
"vmSize": {
"type": "string",
"defaultValue": "Standard_D3"
}
},
"resources": [],
"outputs": {
"location": {
"type": "string",
"value": "[parameters('location')]"
},
"vmSize": {
"type": "string",
"value": "[parameters('vmSize')]"
}
}
}
Die Datei createUiDefinition.json für dieses Beispiel:
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{
"name": "vmSize",
"type": "Microsoft.Compute.SizeSelector",
"label": "VM Size",
"toolTip": "Select a virtual machine size",
"recommendedSizes": [
"Standard_D1"
],
"constraints": {
"allowedSizes": [
"Standard_D1",
"Standard_D2",
"Standard_D3"
]
},
"osPlatform": "Windows",
"visible": true
}
],
"steps": [],
"outputs": {
"location": "[location()]",
"vmSize": "[basics('vmSize')]"
}
}
}
Nächste Schritte
- Informationen zum Erstellen einer Azure-Portal-Benutzeroberfläche finden Sie unter Die Datei „CreateUiDefinition.json“ für die Benutzeroberfläche zum Erstellen verwalteter Azure-Anwendungen.
- Informationen zum Verwenden der Sandbox zum Erstellen von Benutzeroberflächendefinitionen finden Sie unter Testen Ihrer Portaloberfläche für Azure Managed Applications.
- Weitere Informationen zu Benutzeroberflächen-Steuerelementen finden Sie unter CreateUiDefinition-Elemente und CreateUiDefinition-Funktionen.
- Weitere Informationen zu den Tests für ARM-Vorlagen finden Sie unter Testfälle für ARM-Vorlagen.