Friday, 24 November 2017

Top 5 iOS Testing Frameworks

As the market develops in the portable application space, iOS application designers have a large number of iOS testing structures to use. We should go over probably the most well known systems (in sequential order arrange), their qualities, highlights, test scope alternatives, and how they are authorized.

Appium

From appium.io:

"Appium is an open-source instrument for computerizing local, portable web, and half breed applications on iOS and Android stages. Local applications are those composed utilizing the iOS, Android, or Windows SDKs. Versatile web applications are web applications got to utilizing a portable program (Appium bolsters Safari on iOS and Chrome, or the inherent 'Program' application on Android). Cross breed applications have a wrapper around a 'webview' - a local control that empowers collaboration with web content."

Sauce Labs is exceptionally dynamic in the advancement of Appium. Jonathan Lipps, Director of Open Source at Sauce, is the Appium venture lead, and various Sauce Labs engineers every now and again add to the undertaking. Your Appium tests can keep running crosswise over emulators, test systems and genuine gadgets on the Sauce Labs stage.

Qualities

You can pick your own particular supporting structure, as XCTest, for unit testing.

Cross-stage bolster takes into account reuse of test situations crosswise over portable and web channels.

You can compose tests with your most loved devices utilizing any WebDriver-perfect dialect, for example, Java, Objective-C, and JavaScript.

Full structure is open source.

Test Code for WebDriver:

driver.findElement(By.id("com.example.app:id/radio0")).click();

driver.findElement(By.id("com.example.app:id/radio1")).click();

driver.findElement(By.id("com.example.app:id/radio2")).click();

driver.findElement(By.id("com.example.app:id/editText1")).click();

driver.findElement(By.id("com.example.app:id/editText1")).sendKeys("Simple Test");

driver.findElement(By.name("Answer")).click();

Apple Xcode Test

From developer.apple.com:

"Utilize the XCTest structure to compose unit tests for your Xcode ventures that incorporate consistently with Xcode's trying work process. Tests attest that specific conditions are fulfilled amid code execution, and record test disappointments (with discretionary messages) if those conditions are not fulfilled. Tests can likewise quantify the execution of squares of code to check for execution relapses, and can cooperate with an application's UI to approve client collaboration streams."

Qualities"

Tooling is extraordinarily simple to install in the application.

Gives unit, UI, and execution testing.

Utilizations Objective-C and Swift so engineers can utilize their current range of abilities.

Can run tests consequently as a "bot" in the CI/CD process on Xcode Server.

Test Code:

- (void) testAdditionPerformance { [self measureBlock: ^{

/set the underlying state

[calcViewController press: [calcView viewWithTag: 6]];/6

/emphasize for 100000 cycles of including 2

for (int I = 0; I < 100000; i++) { [calcViewController press: [calcView viewWithTag: 13]];/+

[calcViewController press: [calcView viewWithTag: 2]];/2

[calcViewController press: [calcView viewWithTag: 12]];/=

}

}];

}

Calabash

From calaba.sh:

"Calabash empowers you to compose and execute mechanized acknowledgment trial of portable applications. It's cross-stage, supporting Android and iOS-local applications. It's additionally publicly released and free, created and kept up by Xamarin."

(Proofreader's Note: Xamarin declared that they have ceased dynamic improvement of Calabash as of April, 2017).

Qualities:

Utilizations Cucumber to portray the test situations utilizing BDD. This is an incredible element for QA groups since it influences data to clear and simple to process.

Cross-stage bolster considers reuse of test situations crosswise over portable and web channels.

Test Cucumber Feature:

Highlight: Refund thing

Situation: Customer restores a broken microwave

Given Customer has purchased a microwave for $100

What's more, she has a receipt

When she restores the microwave

At that point Customer ought to be discounted $100

EarlGrey

From the Google Open Source Blog:

"Blending for a long while, we are eager to declare EarlGrey, a useful UI iOS testing system. A few Google applications like YouTube, Google Calendar, Google Photos, Google Translate, Google Play Music and numerous more have effectively received the structure for their utilitarian testing needs."

Qualities:

Simple to incorporate into an iOS venture, either straightforwardly or utilizing CocoaPods.

An adaptable structure, with intense synchronization includes crosswise over inside segments.

Full system is open source.

Test Code:

/Objective-C

- (void) testInvokeCustomSelectorOnElement { [[EarlGrey selectElementWithMatcher: grey_accessibilityID(@"id_of_element")]

performAction: [GREYActionBlock actionWithName: @"Invoke clearStateForTest selector"

performBlock: ^(id component, NSError * __strong * errorOrNil) { [element doSomething];

return YES;/Return YES for progress, NO for disappointment.

}]];

}

OCMock

Landing page: ocmock.org

OCMock gives a system to make stub questions in your iOS application. It comes in two alternatives a static library that is utilized for iOS advancement, and a system utilized for OS X improvement.

Qualities:

One of the most straightforward approaches to add deride items to existing unit tests.

Utilizations Objective-C so designers can utilize their current range of abilities.

Full system is open source.

Test Code-Adding to a XCTest:

- (void) testExample {

XCTAssertEqual(0, [self.calculator calculateTax]);

id mockSubscriptionManager = OCMClassMock([SubscriptionManager class]);

}

Conclusion: Which iOS Testing Framework Should I Use?

In view of your needs and involvement with different dialects, the iOS testing system to choose might be self-evident. Or, on the other hand you may need to attempt every one of the structures leaned to see which one works best for you.

In any case, now, the market is develop enough that there is a system out there that fits the requirements of any engineer, and serves an assortment of undertakings whether you essentially need to robotize testing administration brings in iOS , or need to run UI tests in parallel over numerous portable and web stages.


No comments:

Post a Comment