2014-04-21 24 views
12

Jestem nowicjuszem w Objective-C i XCode i uważam, że jestem intelektualnie zakwestionowany podczas omawiania ogólnie dostępnych języków. Nie mam pojęcia, jak działają łączniki, a ilość ustawień kompilacji w każdym IDE, z którym miałem dyskomfort w pracy, po prostu mnie przeraża."Niezdefiniowane symbole dla architektury x86_64" podczas konfigurowania bardzo prostego testowania jednostek dla aplikacji konsolowej

Zacząłem uczyć się ObjC kilka dni temu i oczywiście zacząłem od projektu aplikacji konsolowej. Do tej pory wszystko jest w porządku, ale mam tło Ruby/Rails, które sprawiło, że chcę od razu zrozumieć, jak skonfigurować nawet najbardziej podstawowe środowisko TDD w XCode5.

Użyłem tego official dev doc, ale jest to mniej niż dokładne. Biorąc prób i błędów ścieżkę po prostu dodaje cel XCTest do Projektu, a następnie dodał Przypadek Testowy Class, testując moją Fraction Klasa:

#import <XCTest/XCTest.h> 
#import "Fraction.h" 

@interface FractionTest : XCTestCase 
@end 

@implementation FractionTest 

- (void)setUp 
{ 
    [super setUp]; 
} 

- (void)tearDown 
{ 
    [super tearDown]; 
} 

- (void)testExample 
{ 
    Fraction *fraction = [Fraction new]; 
} 

@end 

Podczas uruchamiania testów linker nie może znaleźć odwołuje symbole:

enter image description here

Czytałem o konfigurowaniu ładowarek pakietów i hostów testowych, ale nikt naprawdę nie wyjaśnia, do którego celu należy je włączyć. Nie działają one dla mnie i zastanawiam się, czy tak prosty, 3-plikowy duży "projekt" wymaga nawet poprawienia ustawień kompilacji.

Jak mogę po prostu dodać klasę testów, która przetestuje inną klasę za pomocą prostych twierdzeń?

Odpowiedz

17

Prawo Murphy'ego, oczywiście znalazłem odpowiedź 3 minuty po zaksięgowaniu pytanie, które mnie denerwowala godzinami:

Klasa Chcę przetestować musi być członkiem cel testu. Po sprawdzeniu odpowiedniego "Docelowego członkostwa" dla pliku klasy Fraction błędy zniknęły.

checking Target Membership for Fraction.m

+2

Okazało się, że ta odpowiedź pomogła mi tak, że nie trzeba ustawić cel dla każdego z moich plików. http://stackoverflow.com/questions/18266649/xctest-build-errors-for-test-target-xcode-5/24390619#24390619 –

+1

@RrRogers ratuje życie, oczywiście symbole nie są znalezione, jeśli są ukryte ... – Jakehao

Powiązane problemy