I had lots of UIViewController they ends up by pushing another UIViewController. That's say I had a AUIViewController it would push BUIViewController by MyUINavigationController.
When writing unit tests we test AUIViewController independently, in average cases self.navigationController will be nil.
We need a mock UINavigationController injected.
AssociatedObject did the trick.
Don't forget #import <objc/runtime.h>
My matcher is OCHamcrest, mocking library is OCMockito and Unit test framework is build-in
XCTest.