让我们说我的SUT(被测系统)需要从属性bundleIdentifier中的@"CFBundleIdentifier"
提供infoDictionary
。
- (void)testAppPackageName
{
//fixture code is happening in setUp function
XCTAssertEqualObjects(sut.bundleIdentifier, [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleIdentifier"]);
}
问题是[[NSBundle mainBundle] infoDictionary]
在测试环境中返回一个空的NSDictionary
,这意味着我在这里测试的nil等于nil。
此外,这个测试闻起来
你会如何测试?
答案 0 :(得分:0)
我现在使用的解决方案是在构造函数
中将inforDictionary注入我的sut- (void)testAppPackageName
{
//fixture
NSDictionary* appInfo = @{ @"CFBundleIdentifier" : BUNDLE_IDENTIFIER};
sut = [[SomeClass alloc] initWithInfo:appInfo];
XCTAssertEqualObjects(sut.bundleIdentifier, BUNDLE_IDENTIFIER);
}