Testcases voor createUiDefinition.json
In dit artikel worden de tests beschreven die worden uitgevoerd met de sjabloontest-toolkit voor createUiDefinition.json bestanden. De voorbeelden zijn de testnamen en codevoorbeelden die de tests passeren of mislukken .
De toolkit bevat testcases voor Arm-sjablonen (Azure Resource Manager) en de hoofdsjabloonbestanden met de naam azuredeploy.json of maintemplate.json. Wanneer de map een createUiDefinition.json-bestand bevat, worden specifieke tests uitgevoerd voor UI-besturingselementen. Zie Testparameters voor meer informatie over het uitvoeren van tests of het uitvoeren van een specifieke test.
Het createUiDefinition.json-bestand maakt aangepaste besturingselementen voor de gebruikersinterface (UI) met behulp van elementen en functies.
Controleer of de sjabloonparameter waarden toestaat
Testnaam: Toegestane waarden moeten daadwerkelijk worden toegestaan
Met deze test wordt gecontroleerd of waarden voor elk besturingselement in createUiDefinition.json zijn toegestaan in de parameters van de hoofdsjabloon. De parameters worden toegewezen op naam tussen de hoofdsjabloon en het createUiDefinition.json-bestand .
De parameter van de hoofdsjabloon moet de waarden van het besturingselement allowedValues
accepteren. De test controleert ook of naar het besturingselement wordt verwezen in de sectie createUiDefinition.jsonoutputs
.
Met deze test worden de hoofdsjabloon en het createUiDefinition.json-bestand gecontroleerd. Een voorbeeld van het createUiDefinition.json-bestand wordt weergegeven na de voorbeelden van de hoofdsjabloon.
Het volgende voorbeeld mislukt omdat de parameternaam combo
van de hoofdsjabloon niet overeenkomt met de parameternaam comboBox
van het besturingselement.
{
"$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')]"
}
}
}
Het volgende voorbeeld mislukt omdat het parametertype int
van de hoofdsjabloon de waarde van string
het besturingselement niet accepteert. En als de parameter van een hoofdsjabloon een defaultValue
parameter definieert, moet deze een geldige value
waarde hebben in het besturingselement allowedValues
.
{
"$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')]"
}
}
}
Het volgende voorbeeld wordt doorgegeven omdat de parameternaam van de hoofdsjabloon overeenkomt met de parameternaam van het besturingselement. En het parametertype van de sjabloon is een string
met een defaultValue
die is opgegeven in het besturingselement allowedValues
.
{
"$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')]"
}
}
}
Het createUiDefinition.json-bestand voor dit voorbeeld:
{
"$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]"
}
}
}
Uitvoerbesturingselementen moeten bestaan
Testnaam: Besturingselementen in uitvoer moeten bestaan
Besturingselementen die in de outputs
sectie worden gebruikt, moeten bestaan in een element elders in createUiDefinition.json. De naam waarnaar wordt outputs
verwezen, moet overeenkomen met een naam die wordt gebruikt in basics[]
of steps[]
.
Het volgende voorbeeld mislukt.
{
"$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')]"
}
}
}
Het volgende voorbeeld wordt doorgegeven.
{
"$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')]"
}
}
}
Eigenschappen moeten waarden bevatten
Testnaam: CreateUIDefinition Mag geen lege waarden hebben
Eigenschappen moeten waarden bevatten. Vereiste eigenschappen moeten geldige waarden gebruiken. Optionele eigenschappen die leeg zijn, moeten worden verwijderd. De test staat lege "basics": []
, "steps": []
of defaultValue
.
Het volgende voorbeeld mislukt omdat label
, placeholder
en toolTip
leeg zijn.
{
"$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')]"
}
}
}
Het volgende voorbeeld wordt doorgegeven omdat label
en toolTip
waarden bevat en placeholder
is verwijderd.
{
"$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')]"
}
}
}
Geldig schema en geldige versie gebruiken
Testnaam: CreateUIDefinition moet een schema hebben
Het bestand createUiDefinition.json moet een $schema
eigenschap bevatten en een geldige $schema
en version
. De versienummers in $schema
en version
moeten overeenkomen.
Het volgende voorbeeld mislukt.
{
"$schema": "https://schema.management.azure.com/schemas/0.9.9-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.9.9-preview"
}
Het volgende voorbeeld wordt doorgegeven omdat deze gebruikmaakt van de meest recente $schema
en version
.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview"
}
Verberg de bevestiging van referenties niet
Testnaam: Bevestiging van referentie mag niet verborgen zijn
Met deze test wordt gecontroleerd of referenties zijn bevestigd voor Microsoft.Common.PasswordBox of Microsoft.Compute.CredentialsCombo. De hideConfirmation
eigenschap moet zodanig worden ingesteld false
dat de bevestiging zichtbaar is.
Het volgende voorbeeld mislukt omdat hideConfirmation
dit is true
.
{
"$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')]"
}
}
}
Het volgende voorbeeld wordt doorgegeven omdat hideConfirmation
.false
{
"$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')]"
}
}
}
De juiste handler gebruiken
Testnaam: Handler moet juist zijn
Gebruik Microsoft.Azure.CreateUIDef
of Microsoft.Compute.MultiVm
in het createUiDefinition.json-bestand .
Het volgende voorbeeld mislukt.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.",
"version": "0.1.2-preview"
}
Het volgende voorbeeld wordt doorgegeven.
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview"
}
Bestaande resources niet verbergen
Testnaam: HideExisting moet correct worden verwerkt
Als hideExisting
dit is ingesteld op false
of weggelaten, outputs
moet deze bevatten resourceGroup
en newOrExisting
. De standaardwaarde hideExisting
is false
.
Voorbeelden van besturingstypen zijn hideExisting
Microsoft.Storage.StorageAccountSelector, Microsoft.Network.PublicIpAddressCombo of Microsoft.Network.VirtualNetworkCombo.
Het volgende voorbeeld mislukt.
{
"$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()]"
}
}
}
Het volgende voorbeeld wordt doorgegeven.
{
"$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]"
}
}
}
Locatie gebruiken in uitvoer
Testnaam: De locatie moet in uitvoer staan
De outputs
sectie moet een locatie bevatten met behulp van de locatiefunctie .
Het volgende voorbeeld mislukt omdat outputs
er geen locatie is opgenomen.
{
"$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')]"
}
}
}
Het volgende voorbeeld wordt doorgegeven.
{
"$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()]"
}
}
}
Besturingsuitvoer opnemen in sjabloonparameters
Testnaam: Uitvoer moet aanwezig zijn in sjabloonparameters
De test controleert of createUiDefinition.json een outputs
sectie bevat. De test controleert ook of deze outputs
zijn gedefinieerd in de sectie van parameters
de hoofdsjabloon. De namen moeten overeenkomen omdat parameters zijn toegewezen op naam tussen de createUiDefinition.json en de hoofdsjabloon.
Met deze test worden de hoofdsjabloon en het createUiDefinition.json-bestand gecontroleerd. Een voorbeeld van het createUiDefinition.json-bestand wordt weergegeven na de voorbeelden van de hoofdsjabloon.
Het volgende voorbeeld mislukt omdat de hoofdsjabloon de parameter niet bevat comboBox
uit de sectie van outputs
het createUiDefinition.json-bestand.
{
"$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')]"
}
}
}
Het volgende voorbeeld wordt doorgegeven omdat de hoofdsjabloon de comboBox
parameter bevat.
{
"$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')]"
}
}
}
Het createUiDefinition.json-bestand voor dit voorbeeld:
{
"$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()]"
}
}
}
Parameters zonder standaard moeten aanwezig zijn in uitvoer
Testnaam: Parameters zonder standaard moeten bestaan in CreateUIDefinition
Parameters in de hoofdsjabloon zonder standaardwaarde moeten aanwezig zijn in de sectie van outputs
het createUiDefinition.json-bestand.
Met deze test worden de hoofdsjabloon en het createUiDefinition.json-bestand gecontroleerd. Een voorbeeld van het azuredeploy.json-bestand wordt weergegeven na de voorbeelden van het besturingselement.
Het volgende voorbeeld mislukt omdat de createUiDefinition.json-bestand outputs
de parameter comboBox
van de hoofdsjabloon niet bevat.
{
"$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()]"
}
}
}
Het volgende voorbeeld wordt doorgegeven omdat createUiDefinition.json de comboBox
insluiting bevat outputs
.
{
"$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()]"
}
}
}
Het azuredeploy.json-bestand voor dit voorbeeld. De comboBox
parameter heeft geen standaardwaarde.
{
"$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')]"
}
}
}
Veilige parameter gebruiken met wachtwoordvak
Testnaam: Wachtwoordtekstvakken moeten worden gebruikt voor wachtwoordparameters
Met deze test wordt gecontroleerd of een Microsoft.Common.PasswordBox-element is gedefinieerd in de hoofdsjabloon parameters
en het createUiDefinition.jsonoutputs
. Het parametertype van de hoofdsjabloon voor een wachtwoordvak moet of secureString
secureObject
.
Met deze test worden de hoofdsjabloon en het createUiDefinition.json-bestand gecontroleerd. Een voorbeeld van het createUiDefinition.json-bestand wordt weergegeven na de voorbeelden van de hoofdsjabloon.
Het volgende voorbeeld mislukt omdat de parameter van passwordBox
de hoofdsjabloon een string
is.
{
"$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')]"
}
}
}
Het volgende voorbeeld wordt doorgegeven omdat de parameter van passwordBox
de hoofdsjabloon een secureString
is.
{
"$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')]"
}
}
}
Het createUiDefinition.json-bestand voor dit voorbeeld:
{
"$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')]"
}
}
}
Wachtwoordvak vereist minimale lengte
Testnaam: PasswordBoxes moet minimale lengte hebben
De test controleert of het element Microsoft.Common.PasswordBox wordt gebruikt constraints
met een element regex
dat minimaal 12 tekens nodig heeft.
Het volgende voorbeeld mislukt omdat er geen constraints
.
{
"$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')]"
}
}
}
Het volgende voorbeeld wordt doorgegeven omdat er regex
minimaal 12 tekens nodig zijn.
{
"$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')]"
}
}
}
Tekstvak moet validatie gebruiken
Testnaam: Tekstvaken zijn goed gevormd
Gebruik validatie met tekstvakken om te controleren constraints
of deze een regex
en message
bevatten.
Het volgende voorbeeld mislukt.
{
"$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')]"
}
}
}
Het volgende voorbeeld wordt doorgegeven.
{
"$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')]"
}
}
}
knopinfo moet bestaan met een waarde
Testnaam: Knopinfo moet aanwezig zijn
Met deze test wordt gecontroleerd of de toolTip
eigenschap bestaat en een waarde bevat.
Het volgende voorbeeld mislukt.
{
"$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')]"
}
}
}
Het volgende voorbeeld wordt doorgegeven.
{
"$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')]"
}
}
}
Stel geen standaardgebruikersnaam in
Testnaam: Gebruikersnamen mogen geen standaardwaarde hebben
De test controleert of er een defaultValue
set is voor Microsoft.Compute.UserNameTextBox.
Het volgende voorbeeld mislukt omdat er een defaultValue
is opgegeven.
{
"$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')]"
}
}
}
Het volgende voorbeeld wordt doorgegeven.
{
"$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')]"
}
}
}
Bericht gebruiken met validaties
Testnaam: validaties moeten een bericht hebben
Met deze test wordt gecontroleerd of alle validations
in createUiDefinition.json een message
.
Het volgende voorbeeld mislukt omdat de regex
validatie geen message
.
{
"$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')]"
}
}
}
Het volgende voorbeeld wordt doorgegeven.
{
"$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')]"
}
}
}
Grootten van virtuele machines moeten overeenkomen
Testnaam: VM-grootten moeten overeenkomen met de sjabloon
Met deze test wordt gecontroleerd of de Microsoft.Compute.SizeSelector zich in de createUiDefinition.json outputs
en de sectie van parameters
de hoofdsjabloon bevindt. Belangrijkste sjabloonparameters die een defaultValue
waarde opgeven, moeten overeenkomen met een waarde in het besturingselement allowedSizes
.
Met deze test worden de hoofdsjabloon en het createUiDefinition.json-bestand gecontroleerd. Een voorbeeld van het createUiDefinition.json-bestand wordt weergegeven na de voorbeelden van de hoofdsjabloon.
Het volgende voorbeeld mislukt omdat de hoofdsjabloon defaultValue
niet overeenkomt met een waarde in allowedSizes
.
{
"$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')]"
}
}
}
Het volgende voorbeeld wordt doorgegeven omdat de hoofdsjabloon defaultValue
overeenkomt met een waarde in allowedSizes
.
{
"$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')]"
}
}
}
Het createUiDefinition.json-bestand voor dit voorbeeld:
{
"$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')]"
}
}
}
Volgende stappen
- Zie CreateUiDefinition.json voor het maken van een door Azure beheerde toepassing om een gebruikersinterface van Azure Portal te maken.
- Zie Uw portalinterface testen voor Azure Managed Applications als u de sandbox voor de definitie van de gebruikersinterface van de gebruikersinterface wilt gebruiken.
- Zie CreateUiDefinition-elementen en CreateUiDefinition-functies voor meer informatie over ui-besturingselementen.
- Zie Testcases voor ARM-sjablonen voor meer informatie over ARM-sjabloontests.