싱글 톤 클래스가 있고 코드를 단위 테스트 할 수 없습니다. 첫 번째 작업어떻게 유닛이 obj-c에서 싱글 톤을 테스트합니까?
Db *db = [[Db alloc] initWithName:@"sample.db"];
[db createDb];
STAssertEquals([db existDb],YES,@"The db is not created!");
그러나 :
나는 시험과 같은 있습니다. 두 번째가 실행될 때, 나는 항상 initWithName 메소드에서 "null"을 얻는다. 싱글 톤 지원 코드를 제거하면 모두 예상대로 작동합니다.
나는 테스트를 해킹 할 수는 있지만 (지금 당장은 어떻게되는지 모르지만)이 문제를 처리하는 "poper"방법이 있는지 궁금해합니다.
싱글 톤은 여기에 있습니다 : http://code.google.com/p/chibiorm/source/browse/trunk/src/Db.m
테스트 외부에서 싱글 톤을 어떻게 사용합니까? 싱글 톤에서 [[Db alloc] init]을해서는 안되지만 대신 단일 인스턴스를 반환하는 클래스 메서드를 호출해야합니다. – pgb
그것을 사용하는 코드의 경우 예 ... 그렇다면 내부 동작을 테스트하는 방법은 무엇입니까? – mamcx