2015-11-26 1 views
2

Я пишу блок-тест для одного из моих методов утилиты. Этот метод утилиты внутренне извлекает некоторые значения на основе набора свойств на одноэлементном объекте. В моем тестовом модуле, прежде чем я называю этот метод полезности, я устанавливаю значение объекта сеанса и печать, чтобы подтвердить, что он получает набор:Singleton не работает с XCTests - iOS

- (void)testMyMethod { 
    [MySession sharedSession].isTesting = true; 
    NSLog(@"isTesting = %d", [MySession sharedSession].isTesting); // prints 1 
    [myClassObj myMethod]; 
} 

Но внутри моего myMethod, isTesting никогда не проходит true проверку:

- (void)myMethod { 
    if ([MySession sharedSession].isTesting == true) { // this condition is always failing 
     ... do something ... 
    } 
} 

Я также напечатал одноэлементный объект как в тесте, так и в фактическом методе и подтвердил, что оба относятся к тому же месту в памяти.

У любого есть ключ к пониманию, почему это происходит так. Любое направление/указатель/руководство высоко оценено!

ответ

3

Got это выяснял -

Замечено, что прикладной модуль и модуль тестов, разделенных модулей, и поэтому я удалил класс одноплодной MySession из моей тестовой цели и просто импортировал проект в тестовом классе, и это работало все нормально.

+0

Это замечательно! Как вы импортировали проект? Я сделал это, выбрав Build Phases - Compile Sources и добавив продукт туда. –