Komponententestaktionen überschreiben
Ändern Sie die Testeigenschaften einer bestimmten Seitenkomponente mithilfe von HTML-Attributen, die spezifisch für sind Automated Test Framework.
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 FrameworkBestimmt fälschlicherweise die Aktionen oder Feldtypen Ihrer anwenderdefinierten Komponente, oder Ihre Komponente enthält mehrere DOM-Elemente, die als eine Entität behandelt werden sollen. Legen Sie sie explizit mit HTML-Attributen fest, die spezifisch für sind Automated Test Framework.
Mit den Attributen „sn-atf-clickable“ und „sn-atf-setable“
Verwenden sn-atf-anklickbar Und sn-atf-einstellbar Attribute, um anzugeben, dass ein Element und seine untergeordneten Elemente als anwenderdefinierte anklickbare oder anwenderdefinierte einstellbare 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>
Mit dem Attribut „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 von zu bearbeiten sn-reference-Picker Und sn-Datensatzauswahl Angular-Direktiven. Der Wert in einer Referenzauswahl gibt zurück sys_ID Des ausgewählten Datensatzes. Der Wert in einer Datensatzauswahl gibt das Wertfeld zurück, das für diese Datensatzauswahl ausgewählt wurde. Beide Elemente können festgelegt werden, indem ein Datensatz ausgewählt wird, der als Wert festgelegt werden soll.