Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to use in a UITest #346

Open
3 tasks
tagy opened this issue Jul 27, 2021 · 9 comments
Open
3 tasks

How to use in a UITest #346

tagy opened this issue Jul 27, 2021 · 9 comments

Comments

@tagy
Copy link

tagy commented Jul 27, 2021

New Issue Checklist

Environment

  • version of OHHTTPStubs: 9.1.0
  • integration method you are using:
    • Cocoapods
    • Carthage
    • submodule
    • [ x] other: SPM
  • version of the tool you use: Xcode 12.5

Issue Description

I am using OHHTTPStubs in my Units tests without any issue.
For my unit tests target I have my main app selected as the host application.
I have OHHTPStubs added under link with libraries for the unit testing target.

For my UITest target I have my main app selected as the target app.
I have also added OHHTPStubs under link with libraries for the UI testing target.

I am able to import OHHTTPStubs in to my UITest files and can add code to stub out requests. But when I run a UITest the stub blocks are never called.

I do not have OHHTTPStubs added under link with libraries for my main app.

I have seen this guide but not sure if it applies to my issue A tricky case with Application Tests

I think the setup I have is applying the stubs only to my UITesting app, and not the main app.

Any help would be appreciated thanks.

@LemonSpike
Copy link

Having the same issue here.

@anelrh26
Copy link

anelrh26 commented Oct 7, 2021

having the same issue here. I'm using Xcode 13

@kishorepran
Copy link

What I have done in my project

  1. Include OHTTPStubs, and sample JSON in my main bundle.
  2. To make sure the sample JSON is not pushed to production I use a different target for production and another one for all other builds. hence all the sample JSON are not a part of production build.
  3. Use environment variable and check for the environment variable if passed then mock the API calls.
  4. The environment variable check code is under IF Debug compiler flag hence that does not ship to production either.
  5. Now this environment variable can be passed in the UI test as launch arguments when launching the application in the UI test.
    Hope this helps. Let me know for any more info.

@ppamorim
Copy link

Same issue :(

@kishorepran
Copy link

kishorepran commented Sep 27, 2022

Same issue :(

Can you create a repo for your sample project and share link here. I would love to debug your issue and submit a pr. thanks

@Wiley-Wan
Copy link

What I have done in my project

  1. Include OHTTPStubs, and sample JSON in my main bundle.
  2. To make sure the sample JSON is not pushed to production I use a different target for production and another one for all other builds. hence all the sample JSON are not a part of production build.
  3. Use environment variable and check for the environment variable if passed then mock the API calls.
  4. The environment variable check code is under IF Debug compiler flag hence that does not ship to production either.
  5. Now this environment variable can be passed in the UI test as launch arguments when launching the application in the UI test.
    Hope this helps. Let me know for any more info.

Hi @kishorepran, so how about my JSON file? All of them put in main bundle? I think it will improve the app's size.

@kishorepran
Copy link

@Wiley-Wan : Please refer to point 2

@sulaimankhan7
Copy link

Same. Couldn't use it with my UITest

@kishorepran
Copy link

Hi @sulaimansust , @Wiley-Wan : Please upload a sample project where this is not working and let me raise a pr with working example.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants