mercredi 8 juillet 2015

How to setup test cases for SAPUI5/OPENUI5 applications?

I try to atomize my tests for a given UI5 application. Therefore I created a folder under WebContent called test-resources. In that folder I placed two files for first tests.

First file: experimental.qunit.html that contains some first working unit test code.

Second file: experimental.opa.html which contains an example code from the documentation.

The testing part looks like this:

opaTest("Should find a Button with a matching property", function(Given, When, Then) {
    // Act
    Given.iStartMyAppInAFrame("index.html");

    When.waitFor({
        viewName : "view.master.Master",
        controlType : "sap.m.Button",
        matchers : new sap.ui.test.matchers.PropertyStrictEquals({icon : "sap-icon://show"}),
        success : function (aButtons) {
            debugger;
            ok(true, "Found the button: " + aButtons[0]);
        },
        errorMessage : "No button with property icon equal to sap-icon://show"
    });
    Then.waitFor({
        // not implemented
    });
    Then.iTeardownMyAppFrame();
});

First of all I assume that I can search a button also with icon property. Second assumption is, that viewName is the name and folder of the view file? In the app, the view is the master view of a split app.

I start the test like this: * In Eclipse mark the project and choose run as "Web App Preview" * Than of course I see my normal app * I replace the index.html part with test-resoruces/experimental.opa.html * Now I can see the test and my app is shown in an iframe

But: 1. The button selection is not working, anyone an idea what's wrong? 2. If I change the html code I have to restart the "Web App Preview" all the time, a reload seems not working. Is there a "better" way to run the tests after updating test code?

The app itself is defined as a component, and the main view is a SplitApp xml file that contains nothing than:

<mvc:View
    xmlns:mvc="sap.ui.core.mvc"
    displayBlock="true"
    xmlns="sap.m">
    <SplitApp id="idAppControl" />
</mvc:View>

Aucun commentaire:

Enregistrer un commentaire