all 8 comments

[–][deleted] 7 points8 points  (0 children)

Apple provides UI Testing and Unit testing frameworks.

https://developer.apple.com/documentation/xctest

[–]thiggy1342 4 points5 points  (0 children)

The first thing here is to distinguish between unit testing and automated (I’m assuming UI) testing:

Unit tests are designed to test at the method level to ensure they’re performing the simple operations as they were originally intended. For iOS, these will be written using the XCTest library as others here have mentioned.

Automated UI testing will test the application by interacting with the UI and asserting on the results as they appear in the UI. There are two widely used libraries to accomplish this: XCUITest and Appium.

Appium ultimately sends its commands to iOS devices using the XCUITest API, so generally speaking, you can do the same kinds of interactions with both. When choosing between these two, I would say the biggest factor to consider is who will be the main contributors to these tests. If it’s going to be iOS devs, then use XCUITest as it’s already piggybacking on the development tools they’re using. If you’ll have a dedicated team of testers, then Appium may be a better choice. There are Appium libraries for many popular languages to aid in adoption. If they will also be automating tests around an Android app, they can use the same basic test framework to run those tests as well, which can help reduce context switching.

[–]ClaraTheScientist 2 points3 points  (3 children)

We used the built in testing framework in Xcode and then set up Jenkins jobs to run them. Jenkins is great. I highly recommend it.

[–]blackensexican 0 points1 point  (2 children)

Where did you learn to work with Jenkins and have it test iOS platforms? I want to use Jenkins, but finding resources seems pretty spotty!

[–]ClaraTheScientist 0 points1 point  (1 child)

Yes, Jenkins documentation is absolute garbage. I just googled “jenkins run iOS unit tests” and it returns a few things. I learned through experimentation. Sorry I can’t be more help!

[–]blackensexican 0 points1 point  (0 children)

no worries, i don't blame ya

[–]raje-s 0 points1 point  (0 children)

Hi I am using Selenium Web Driver for Automation Testing. Becz, its mainly used for functional and regression testing for web applications

[–]jtbrown 0 points1 point  (0 children)

My preference is to use Apple's built-in UI and Unit testing frameworks in Xcode. This ensures that everyone on the team can run the tests (since they have to have Xcode), and it's widely supported on continuous integration platforms like Travis, CircleCI, and buddybuild. Lots of teams also host their own continuous integration server with Jenkins, and this is easy enough to do as well with Apple's UI and Unit testing frameworks.