WebHU - Programozási kérdések és válaszok

Hogyan állapíthatom meg, hogy melyik iOS-eszközön futnak a funkciótesztjeim?

Jelenleg számos függvénytesztem van javascriptben az Apple UIAutomation API-jával. A tesztek iPhone-ra íródnak, de az alkalmazás támogatja az iPadet is.

Ahhoz, hogy tesztjeimet iPaden is futtathassam, módosítanom kell a kódban, de először meg kell találnom, hogy melyik eszközön futnak a tesztek.

Hogyan észlelhetem, hogy melyik eszköz/szimulátor futtatja a teszteket?, amikor a JavaScript-teszteket az Automatizálási eszközből futtatom.


  • ha ezt Javascript tesztként csinálod, van-e egyáltalán Objective C interfész a kódodhoz, és ha igen, hogyan hívhatod meg? 03.01.2012
  • Valószínűleg a felület az, amit keresek. Az Xcode automatizálási eszközét használom a szkriptfájl betöltésére az Apple utasításai szerint. Amennyire én tudom, ez a hivatalosan támogatott módszer az alkalmazás tesztelésére. developer.apple.com/library/ios/#documentation/ToolsLanguages/ 03.01.2012

Válaszok:


1

Az UIATarget.localTarget().model() tartalmazza az információkat arról, hogy a tesztek melyik eszközön futnak.

Felfedeztem Alex Vollmer tuneup_js könyvtárát. Legalább bizonyos mértékig eszközfüggetlen kódot tesz lehetővé.

e.g.)

test("my test", function(target, app) {
  assertWindow({
    "navigationBar~iphone": {
      leftButton: { name: "Back" },
      rightButton: { name: "Done" }
    },
    "navigationBar~ipad": {
      leftButton: null,
      rightButton: { name: "Cancel" }
    },
  }); 
});

szerkesztés

A következőt találtam a tuneup_js fájlban:

   /**
    * A convenience method for detecting that you're running on an iPad
    */
    isDeviceiPad: function() {
      return this.model().match(/^iPad/) !== null;
    },

    /**
     * A convenience method for detecting that you're running on an
     * iPhone or iPod touch
     */
    isDeviceiPhone: function() {
      return this.model().match(/^iPhone/) !== null;
    }

Ezekkel tudok majd készülékspecifikus kódot írni.

03.01.2012

2

Kövesse az itt található dokumentációt, és minden információt megkap: https://developer.apple.com/library/ios/#documentation/ToolsLanguages/Reference/UIATargetClassReference/UIATargetClass/UIATargetClass.html

//Íme a szkript, amelyet az eszköz nevének, operációs rendszer verziójának, csomagazonosítójának, céljának stb. lekéréséhez használok.

#import "tuneupjs/Utilities.js"
var target = UIATarget.localTarget();

var app_bundle_id = target.frontMostApp().bundleID();
UIALogger.logDebug("App Bundle Id : " + app_bundle_id);

if(app_bundle_id.strContains("ShazamDev"))
    UIALogger.logDebug("Running UIA Scripts for ShazamDev");

var device_name = target.name();
UIALogger.logDebug("Phone Name : " + target.name());

var device_model = target.model();
UIALogger.logDebug("Device Model: " + device_model);

//UIALogger.logDebug("System Name: " + target.systemName());

var ios_version = target.systemVersion();
UIALogger.logDebug("IOS Version: " + ios_version);
17.02.2012

3

Itt található a StrContains metódus kódja a segédprogramok fájljában

String.prototype.strContains = function(value, ignorecase) {
    if (ignorecase) {
        return (this.toLowerCase().indexOf(value.toString().toLowerCase()) != -1);
    }
    else {
        return this.indexOf(value) != -1;
    }
};
17.02.2012
Új anyagok

A rádiógomb ellenőrzött eseményének használata a jQueryben
Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

Miért érdemes elkezdeni a kódolást 2023-ban?
01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

🎙 Random Noise #2  – Örökbefogadás és hit
az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..