linkedin / LayoutTest-iOS

Write unit tests which test the layout of a view in multiple configurations
https://linkedin.github.io/LayoutTest-iOS/
Apache License 2.0
563 stars 46 forks source link

Can't call init with data #46

Open mikegunning opened 6 years ago

mikegunning commented 6 years ago

Hey! Really excited to get this project working for me.

I have a number of views and view controllers I would like to test. I am using Realm in-memory to create Realm Objects to pass into my inits to instantiate my views and view controllers.

failed: caught "NSInvalidArgumentException", "-[StoriesASDetailViewController initWithStory:]: unrecognized selector sent to instance 0x7fa5fbe07ce0"

No matter what I try, be it a cell or tableviewcontroller, I just keep getting the error above.

Any advice?

` +(UIView )viewForData:(NSDictionary )data reuseView:(UIView )reuseView size:(LYTViewSize )size context:(id _Nullable __autoreleasing *)context {

        StoryModel *story = [[StoryModel alloc] initWithDictionary:data error:nil];

        StoryRealm *local = [[StoryRealm alloc] initWithStoryModel:story];

        StoriesASDetailViewController *footer = [[StoriesASDetailViewController alloc] initWithStory:local];

        StoryDetailCell *cell = [footer.collectionNode cellForItemAtIndexPath:0];

        *context = footer;

        return cell;

} `

plivesey commented 6 years ago

It's crashing on that 3rd line right? Where is [StoriesASDetailViewController initWithStory:] defined in your project? I assume it's in the main app bundle?

My guess is for some reason that code isn't being included in your test project.

Another thing to check - if you just create a regular unit test and write:

        StoriesASDetailViewController *footer = [[StoriesASDetailViewController alloc] initWithStory:nil];

Does it crash also?

mikegunning commented 6 years ago

Yes crashing on the third line. I am using the same approach in separate unit tests in the same target using: StoriesASDetailViewController *footer = [[StoriesASDetailViewController alloc] initWithStory:nil];

I have tried a number of UITableCell and other UIViewController where I pass in an object into the init, and I get the same error each time....

If possible, could you expand on the sample Objective-C example like the swift example?

plivesey commented 6 years ago

Could you send a full stack trace of the crash? The other thing I was going to suggest was ensuring that the file was added to the target, but looks like you've already verified that.

plivesey commented 6 years ago

Another thing to try (not sure if this will work), when when you get this error:

failed: caught "NSInvalidArgumentException", "-[StoriesASDetailViewController initWithStory:]: unrecognized selector sent to instance 0x7fa5fbe07ce0"

po [0x7fa5fbe07ce0 class]

and see what it prints out (haven't tried it so don't know if this will work)