iOS XCTest framework - Unit Testing Import a module that it can be tested

Help us to keep this website almost Ad Free! It takes only 10 seconds of your time:
> Step 1: Go view our video on YouTube: EF Core Bulk Extensions
> Step 2: And Like the video. BONUS: You can also share it!

Example

Classes, structs, enums and all their methods are internal by default. This means they can be only accessed from the same module. The test cases are in a different target an this means they are in a different module. To be able to access the method you want to test, you need to import the module to be tested using the @testable keyword.

Let's say we have a main module called ToDo and we want to write tests for it. We would import that module like this:

@testable import ToDo

All test methods in the file with this import statement can now access all internal classes, structs, enums and all their internal methods of the ToDo module.

You should never add the files with the elements you want to test to the test target because that can lead to hard to debug errors.



Got any iOS Question?