For a program I’m working on, I want to store a file in the test bundle of an app for unit testing, then load that file to test a parser.
Specifically I want to create a class of XCTestCase, and create a file which is included in the unit test object. I then want to be able to load a URL from the file using NSBundle’s URLForResource:withExtension: method, so that I can test an internal parser using the test file, but without the test file being built as a part of the final application.
To do this, you need to load the URL from the test class’s bundle. So in the end, I wound up doing the following:
(1) Including the file as a target of the unit tests app.
(2) Loading the file with:
- (void)testZip { NSBundle *b = [NSBundle bundleForClass:self.class]; NSURL *url = [b URLForResource:@"MyFile" withExtension:@"ext"]; XCTAssert(url != nil); ... Do my other tests with the file here... }