Komponententestaktionen überschreiben
Ändern Sie die Testeigenschaften einer bestimmten Seitenkomponente mithilfe von HTML-Attributen, die für Automated Test Frameworkspezifisch sind.
Vorbereitungen
Warum und wann dieser Vorgang ausgeführt wird
Wenn Automated Test Framework eine Komponente abruft, bestimmt es die unterstützten Interaktionen, z. B. ob es sich um eine einstellbare oder anklickbare Komponente handelt. Wenn die Komponente einstellbar ist, bestimmt Automated Test Framework den Feldtyp, der eingestellt werden kann. Wenn Automated Test Framework die Aktionen oder Feldtypen Ihrer anwenderdefinierten Komponente falsch bestimmt oder Ihre Komponente mehrere DOM-Elemente enthält, die als eine Entität behandelt werden sollten, legen Sie sie explizit mit HTML-Attributen fest, die für Automated Test Frameworkspezifisch sind.
Mithilfe der Attribute „sn-atf-clickable“ und „sn-atf-settable“.
Verwenden Sie die Attribute sn-atf-clickable und sn-atf-settable, um anzugeben, dass ein Element und seine untergeordneten Elemente als anwenderdefiniert anklickbare oder anwenderdefiniert festlegbare Komponente behandelt werden sollen.
Vorbereitungen
Prozedur
Beispiel
//A custom clickable component
<div sn-atf-clickable="true" sn-atf-disabled id="customClickable">
<button id="customButton">Click me</button>
</div>
<script>
var customClickableDiv = document.getElementById("customClickable");
customClickableDiv.addEventListener('sn-atf-click', function() {
document.getElementById('customButton').click();
});
</script>
//A custom settable component
<div sn-atf-settable="true" id="customSettable" sn-atf-component-value="A default value">
<input id="customInput" value="A default value"></input>
</div>
<script>
var customSettableDiv = document.getElementById("customSettable");
customSettableDiv.addEventListener('sn-atf-setvalue', function(event) {
var newValue = event.detail.newValue;
document.getElementById("customInput").value = newValue;
});
</script>
Verwendung des Attributs sn-atf-class
Verwenden Sie das Attribut sn-atf-class, um das zu verwendende JavaScript-Objekt anzugeben, das beim Testen einer benutzerdefinierten anklickbaren oder einstellbaren Komponente verwendet werden soll. Schreiben Sie ein benutzerdefiniertes JavaScript-Objekt, um die für eine benutzerdefinierte Komponente verfügbaren Testaktionen anzugeben.
Vorbereitungen
Warum und wann dieser Vorgang ausgeführt wird
sn-atf-class zuweisen. Legen Sie den Wert des Attributs auf den Namen des JavaScript-Objekts fest, das die Komponententestaktionen enthält. Testbare benutzerdefinierte Komponenten müssen entweder anklickbar oder einstellbar sein. Diese Klassifizierung bestimmt die Funktionen und Eigenschaften, die Ihr JavaScript-Objekt benötigt. Siehe Testschritte für benutzerdefinierte UIs für Anforderungen an testbare Seitenkomponenten.Prozedur
Beispiel
//A custom clickable component
<form>
<div sn-atf-class="MyClickableComponent">
<label for="a_clickable_checkbox">MyClickableComponent</label>
<input type="checkbox" id="a_clickable_checkbox" checked="true"/>
</div>
</form>
<script>
var MyClickableComponent = {
// The constructor must have this signature, but you can perform additional setup after the $super(element, area) call
initialize: function($super, element, area) {
$super(element, area);
},
click: function() {
document.getElementById('a_clickable_checkbox').click();
return {success: true};
},
// The function returns an object with a result attribute of type String
getValue: function() {
var isChecked = document.getElementById('a_clickable_checkbox').checked ? "true" : "false";
return {success: true, result: isChecked};
},
// The function returns an object with a result attribute of type Boolean
isDisabled: function() {
if (document.getElementById('a_clickable_checkbox').disabled)
return {success: true, result: true};
return {success: true, result: false};
},
};
</script>
//A custom settable component
<form>
<div sn-atf-class="MySettableComponent">
<label for="a_settable_checkbox">MySettableComponent</label>
<input type="checkbox" id="a_settable_checkbox" checked="true"/>
</div>
</form>
<script>
var MySettableComponent = {
// This attribute is required for settable components
isSettable: true,
// The constructor must have this signature, but you can perform additional setup after the $super(element, area) call
initialize: function($super, element, area) {
$super(element, area);
},
// The value parameter is a string
setValue: function(value) {
document.getElementById('a_settable_checkbox').checked = (value == "true");
return {success: true};
},
// The function returns an object with a result attribute of type String
getValue: function() {
var isChecked = document.getElementById('a_settable_checkbox').checked ? "true" : "false";
return {success: true, result: isChecked};
},
// The function returns an object with a result attribute of type Boolean
isDisabled: function() {
if (document.getElementById('a_settable_checkbox').disabled)
return {success: true, result: true};
return {success: true, result: false};
},
};
</script>
Referenz- und Datensatzauswahl
Verwenden Sie anwenderdefinierte UI-Schritte, um die Werte der Winkelanweisungen sn-reference-picker und sn-record-picker zu bearbeiten. Der Wert in einer Referenzauswahl gibt die sys_id des ausgewählten Datensatzes zurück. Der Wert in einer Datensatzauswahl gibt das für diese Datensatzauswahl ausgewählte Wertfeld zurück. Beide Elemente können festgelegt werden, indem ein Datensatz ausgewählt wird, der als Wert festgelegt werden soll.