Objective-C Ondersteuning
Volg de stappen om het axeDevToolsXCUI-framework te verkrijgen. Alle functies die op deze pagina beschikbaar zijn, worden volledig ondersteund in Objective-C. Importeer de koptekst in ieder bestand waarin je van plan bent het XCUI-framework te gebruiken:
#import <axeDevToolsXCUI/axeDevToolsXCUI-Swift.h>Gebruik de setUp-methode in je UITests om een AxeDevTools-object te initialiseren om te communiceren met beschikbare functies. Genereer een API-sleutel op axe.deque.com. Indien gewenst, kun je in plaats daarvan authenticeren met een gebruikersnaam en wachtwoord.
@interface ObjcUITests : XCTestCase
@end
@implementation ObjcUITests
AxeDevTools* axeDevTools;
- (void)setUp {
NSError* error;
axeDevTools = [AxeDevTools startScanSessionWithApiKey:@"API_KEY"
projectId:@"DEVHUB_PROJECT_ID"
error:&error];
}Een Scan Uitvoeren
Om een scan uit te voeren op een scherm in je applicatie of op een XCUIElement in je applicatie, maak je een nieuwe testcase aan binnen je UITests en roep je binnen je AxeDevTools-object de run-methode aan:
- (void)testAccessibilityOfFirstScreen {
XCUIApplication *app = [[XCUIApplication alloc] init];
[app launch];
NSError* error;
AxeResult* result = [axeDevTools runOnElement:app error:&error];
XCTAssertEqual(result.failures.count, 0); // This allows you to assert if there are accessibility failures
}Scan Naar het Dashboard Sturen
Zodra je de scan hebt, kun je deze naar het Dashboard verzenden door vanuit het AxeDevTools-object de postResult-methode aan te roepen:
NSError* error;
[axeDevTools postResult:result withTags:@[@"Build 10.6.1"] withScanName:@"" error:&error];Als je je scan niet wilt taggen, kun je een lege array naar de withTags-parameter doorgeven. Als je de scan een aangepaste scannaam wilt geven, kun je deze naar de withScanName-parameter doorgeven.
Volledig Voorbeeld
#import <axeDevToolsXCUI/axeDevToolsXCUI-Swift.h>
#import <XCTest/XCTest.h>
@interface ObjcUITests : XCTestCase
@end
@implementation ObjcUITests
AxeDevTools* axeDevTools;
- (void)setUp {
NSError* error;
axeDevTools = [AxeDevTools loginWithAPIKey:@"API_KEY"
toServer:@""
error:&error];
}
- (void)testAccessibilityOfFirstScreen {
XCUIApplication *app = [[XCUIApplication alloc] init];
[app launch];
NSError* error;
AxeResult* result = [axeDevTools runOnElement:app error:&error];
XCTAssertEqual(result.failures.count, 0);
[axeDevTools postResult:result
withTags:@[@"Build 10.6.1"]
withScanName:@""
error:&error];
}
@endFuncties
Weergaven Negeren
Zodra je bent ingelogd, gebruik je het AxeDevTools-object om regels voor specifieke weergaven te negeren. Je kunt alle weergaven van een specifieke klasse negeren, of een weergave met een specifieke Toegankelijkheid Identifier negeren:
NSDictionary* ignoreRules = @{ @"UILabel": @[@"InScrollView"], // ignore InScrollView for all UILabels
@"LoginScreen.Button": @[@"TouchTargetSize"] // ignore TouchTargetSize for the view with this accessibility id
};
[[axeDevTools configuration] ignoreWithRulesFor: ignoreRules];Regels Negeren
Zodra je bent ingelogd, gebruik je het AxeDevTools-object om regels voor een volledige scan te negeren:
[[axeDevTools configuration] ignoreWithRules:@[@"A11yElementFocusBox"] :true];Je kunt ook regels opnieuw toevoegen aan de configuratie door de bool te wijzigen van true naar false:
[[axeDevTools configuration] ignoreWithRules:@[@"A11yElementFocusBox"] :false];Scans Lokaal Opslaan
Sla resultaten lokaal op om de Axe DevTools Reporter CLI te gebruiken om een beleidsrapport te maken van een reeks scans binnen je CI/CD-pijplijn.
Een scan wordt opgeslagen als een .json-bestand. Het lokaal opslaan van scans wordt alleen ondersteund binnen geautomatiseerde tests.
Als het pad en de bestandsnaam niet zijn gespecificeerd, worden de resultaten "(APPID)-(CURRENT_SCREEN_TITLE).json" genoemd en opgeslagen in een map genaamd "AxeDevToolsResults" binnen je **Gebruiker**-map.
Zodra je bent ingelogd, gebruik je het AxeDevTools-object om je scan als een JSON-bestand op te slaan. Om het standaardpad en de bestandsnaam te gebruiken, stuur je lege strings naar de parameters:
NSError* error;
[axeDevTools saveResult:result toPath:@"" withName:@"" error:&error];