Skip to main content

How to add an image for multiple locales using XCTest

An annoying thing I've had to deal with recently is adding an image (both where you take a photo with the camera and also from the gallery).

You might think that sounds pretty straight forward, but when you want to run your test in multiple locales then "Choose from library" and "Upload photo" etc just doesn't quite cut it.

Attempts to record the steps I took within the gallery view also proved futile, as I could not actually record what I did there.

Here is how I went about adding images to my tests:


    func testAddPhoto() {

        let addPhotoButton = app.tabBars.buttons[LocalizedString("add.photo.button")].firstMatch

        let photoLibraryButton = app.staticTexts[LocalizedString("photo.library.button")].firstMatch

        let takePhotoButton = app.staticTexts[LocalizedString("take.photo.button")].firstMatch


        addPhotoButton.tap()

        XCTAssertEqual(waiterResultWithExpectation(photoLibraryButton), .completed)

        XCTAssertTrue(photoLibraryButton.isEnabled)

        XCTAssertTrue(takePhotoButton.isEnabled)    

        photoLibraryButton.tap()

        //here I am selecting the first image album

        app.cells.element(boundBy:0).tap()

        //opted for a sleep to give it time for the images to appear

        sleep(1)

        //selecting the most recent image

        app.cells.element(boundBy:0).tap()




  

Comments

Popular posts from this blog

Getting started on a testing project

I started on a new project a few weeks ago and thought it would be a good idea to share a checklist for what new testers on a project need and some good starting questions when you, as a tester, are new on a project Checklist for what new testers on a project need (Note, your project may not include all of the below) Note to check if user credentials are needed for any of the below

My Most Used Test Heuristics (with examples)

First, what is a heuristic? A heuristic is a guideline ,  it is fallible.  Therefore, it will give you a good idea of what behaviour you should see BUT it isn't definitely what should happen - it's up to you to confirm that the behaviour you are seeing is correct.  In a previous blog post I shared a step by step guide on  how to test without requirements/little requirements.    But I figured it's good to share my most used test heuristics that I use for testing without requirements. They are: Consistency with History Consistency with User Expectations Consistency within Product Let's take a look at each of them along with some examples to illustrate the concept. 1. Consistency with History  The feature's or function's current behaviour should be consistent with its past behaviour, assuming there is no good reason for it to change. This heuristic is especially useful when testing a new version of an existing program. (Source: developsense) Example: Whitcoulls, a

Bloggers Club: The Importance of Exploratory Testing

 Before we dive into the importance of Exploratory Testing, I would like to clear three things up. Firstly, I align with this definition of Exploratory Testing, by Cem Kamer, it is an approach to software testing that consists of simultaneous learning, test design and test execution. Secondly, I don't think Exploratory Testing has to be a substitute for test cases, it can complement test cases. (It's up to you, how or if you choose to combine both Exploratory Testing and Test cases when you test a feature) Lastly, exploratory testing is not adhoc testing - adhoc testing is random, unstructured testing, exploratory testing forced you to think critically about the application under test. (For more about the difference go here .) Job Interview Analogy To illustrate the importance of Exploratory Testing, I'd like to first use the analogy of a job interview. (I wrote about this in a previous blog post but will expand on this further) The Test Cases in this analogy In a job inte