2014-03-04 162 views
0

可以說我的SUT(被測系統)需要在屬性bundleIdentifier中提供來自infoDictionary@"CFBundleIdentifier"我如何單元測試infoDictionary行爲

- (void)testAppPackageName 
{ 
    //fixture code is happening in setUp function 
    XCTAssertEqualObjects(sut.bundleIdentifier, [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleIdentifier"]); 
} 

的問題是,[[NSBundle mainBundle] infoDictionary]在測試環境中,這意味着我零等於無這裏測試返回一個空NSDictionary。 另外,這個測試有味道

你會如何測試它?

回答

0

我用現在的解決方案是將inforDictionary注入到我的SUT在構造

- (void)testAppPackageName 
{ 
    //fixture 
    NSDictionary* appInfo = @{ @"CFBundleIdentifier" : BUNDLE_IDENTIFIER}; 
    sut = [[SomeClass alloc] initWithInfo:appInfo]; 

    XCTAssertEqualObjects(sut.bundleIdentifier, BUNDLE_IDENTIFIER); 
}