Commit 9adf3bfc authored by 井庆林's avatar 井庆林

修改因为异步处理数据导致的单元测试无法走通

parent 1e21ef15
...@@ -20,6 +20,7 @@ NSString *const MockCityId = @"beijing"; ...@@ -20,6 +20,7 @@ NSString *const MockCityId = @"beijing";
@interface GMPhotoTest : XCTestCase @interface GMPhotoTest : XCTestCase
@end @end
///[NSThread sleepForTimeInterval:0.2]; 因为是异步处理数据,所以需要延迟获取,进行单元测试
@implementation GMPhotoTest @implementation GMPhotoTest
- (void)setUp { - (void)setUp {
...@@ -44,9 +45,11 @@ NSString *const MockCityId = @"beijing"; ...@@ -44,9 +45,11 @@ NSString *const MockCityId = @"beijing";
* @since <#version number#> * @since <#version number#>
*/ */
- (void)testClientWithUserId{ - (void)testClientWithUserId{
[Phobos removeAllNormalPhobosData];
[Phobos.sharedClient setUserId:MockUserId]; [Phobos.sharedClient setUserId:MockUserId];
[Phobos.sharedClient setCurrentCityId:MockCityId]; [Phobos.sharedClient setCurrentCityId:MockCityId];
[Phobos track:MockEventId]; [Phobos track:MockEventId];
[NSThread sleepForTimeInterval:0.2];
NSArray *array = [Phobos normalPhobosDataForServerAPI]; NSArray *array = [Phobos normalPhobosDataForServerAPI];
XCTAssertTrue(array.count == 1, @"array is empty"); XCTAssertTrue(array.count == 1, @"array is empty");
NSDictionary *dict = [array objectAtIndex:0]; NSDictionary *dict = [array objectAtIndex:0];
...@@ -61,6 +64,7 @@ NSString *const MockCityId = @"beijing"; ...@@ -61,6 +64,7 @@ NSString *const MockCityId = @"beijing";
*/ */
- (void)testTrackEventWithoutAttr{ - (void)testTrackEventWithoutAttr{
[Phobos track:MockEventId]; [Phobos track:MockEventId];
[NSThread sleepForTimeInterval:0.2];
NSArray *array = [Phobos normalPhobosDataForServerAPI]; NSArray *array = [Phobos normalPhobosDataForServerAPI];
XCTAssertTrue(array.count == 1, @"array is empty"); XCTAssertTrue(array.count == 1, @"array is empty");
NSDictionary *dict = [array objectAtIndex:0]; NSDictionary *dict = [array objectAtIndex:0];
...@@ -76,6 +80,7 @@ NSString *const MockCityId = @"beijing"; ...@@ -76,6 +80,7 @@ NSString *const MockCityId = @"beijing";
- (void)testTrackEventWithAttr{ - (void)testTrackEventWithAttr{
NSDictionary *attr = @{@"attr":@"track_attr"}; NSDictionary *attr = @{@"attr":@"track_attr"};
[Phobos track:MockEventId attributes:attr]; [Phobos track:MockEventId attributes:attr];
[NSThread sleepForTimeInterval:0.2];
NSArray *array = [Phobos normalPhobosDataForServerAPI]; NSArray *array = [Phobos normalPhobosDataForServerAPI];
XCTAssertTrue(array.count == 1, @"array is empty"); XCTAssertTrue(array.count == 1, @"array is empty");
NSDictionary *dict = [array objectAtIndex:0]; NSDictionary *dict = [array objectAtIndex:0];
...@@ -152,8 +157,10 @@ NSString *const MockCityId = @"beijing"; ...@@ -152,8 +157,10 @@ NSString *const MockCityId = @"beijing";
[Phobos removeAllNormalPhobosData]; [Phobos removeAllNormalPhobosData];
NSDictionary *attr = @{@"attr":@"track_attr"}; NSDictionary *attr = @{@"attr":@"track_attr"};
// //
[NSThread sleepForTimeInterval:0.2];
[Phobos track:MockEventId attributes:attr]; [Phobos track:MockEventId attributes:attr];
[NSThread sleepForTimeInterval:0.2];
XCTAssertTrue([Phobos normalPhobosCount] == 1, @"array shouldn't be empty"); XCTAssertTrue([Phobos normalPhobosCount] == 1, @"array shouldn't be empty");
// PhobosCacheKey超过50条数据会自动上报,模拟此情况 // PhobosCacheKey超过50条数据会自动上报,模拟此情况
...@@ -161,9 +168,12 @@ NSString *const MockCityId = @"beijing"; ...@@ -161,9 +168,12 @@ NSString *const MockCityId = @"beijing";
[Phobos track:MockEventId attributes:attr]; [Phobos track:MockEventId attributes:attr];
} }
[NSThread sleepForTimeInterval:0.2];
XCTAssertTrue([Phobos normalPhobosCount] == 1, @"array shouldn't be empty"); XCTAssertTrue([Phobos normalPhobosCount] == 1, @"array shouldn't be empty");
[NSThread sleepForTimeInterval:0.2];
[Phobos track:MockEventId attributes:attr]; [Phobos track:MockEventId attributes:attr];
[NSThread sleepForTimeInterval:0.2];
XCTAssertTrue([Phobos normalPhobosCount] == 2, @"array shouldn't be empty"); XCTAssertTrue([Phobos normalPhobosCount] == 2, @"array shouldn't be empty");
} }
...@@ -180,23 +190,28 @@ NSString *const MockCityId = @"beijing"; ...@@ -180,23 +190,28 @@ NSString *const MockCityId = @"beijing";
for (int i = 0; i < 30; i++) { for (int i = 0; i < 30; i++) {
[Phobos track:MockEventId attributes:attr]; [Phobos track:MockEventId attributes:attr];
} }
[NSThread sleepForTimeInterval:0.2];
XCTAssertTrue([Phobos normalPhobosCount] == 30, @"array shouldn't be empty"); XCTAssertTrue([Phobos normalPhobosCount] == 30, @"array shouldn't be empty");
// PhobosCacheKey超过50条数据会自动上报,模拟此情况 // PhobosCacheKey超过50条数据会自动上报,模拟此情况
[Phobos track:MockEventId attributes:sendNowAttr sendNow:YES]; [Phobos track:MockEventId attributes:sendNowAttr sendNow:YES];
[NSThread sleepForTimeInterval:0.2];
XCTAssertTrue([Phobos normalPhobosCount] == 30, @"array shouldn't be empty"); XCTAssertTrue([Phobos normalPhobosCount] == 30, @"array shouldn't be empty");
[Phobos track:MockEventId attributes:sendNowAttr sendNow:YES]; [Phobos track:MockEventId attributes:sendNowAttr sendNow:YES];
[NSThread sleepForTimeInterval:0.2];
XCTAssertTrue([Phobos normalPhobosCount] == 30, @"array shouldn't be empty"); XCTAssertTrue([Phobos normalPhobosCount] == 30, @"array shouldn't be empty");
[Phobos track:MockEventId attributes:sendNowAttr sendNow:YES]; [Phobos track:MockEventId attributes:sendNowAttr sendNow:YES];
[NSThread sleepForTimeInterval:0.2];
XCTAssertTrue([Phobos normalPhobosCount] == 30, @"array shouldn't be empty"); XCTAssertTrue([Phobos normalPhobosCount] == 30, @"array shouldn't be empty");
[Phobos track:MockEventId attributes:attr]; [Phobos track:MockEventId attributes:attr];
[NSThread sleepForTimeInterval:0.2];
XCTAssertTrue([Phobos normalPhobosCount] == 31, @"array shouldn't be empty"); XCTAssertTrue([Phobos normalPhobosCount] == 31, @"array shouldn't be empty");
} }
...@@ -211,23 +226,28 @@ NSString *const MockCityId = @"beijing"; ...@@ -211,23 +226,28 @@ NSString *const MockCityId = @"beijing";
NSDictionary *sendNowAttr = @{@"attr":@"track_attr_send_now"}; NSDictionary *sendNowAttr = @{@"attr":@"track_attr_send_now"};
[Phobos track:MockEventId attributes:sendNowAttr sendNow:YES]; [Phobos track:MockEventId attributes:sendNowAttr sendNow:YES];
[NSThread sleepForTimeInterval:0.2];
XCTAssertTrue([Phobos normalPhobosCount] == 0, @"array shouldn't be empty"); XCTAssertTrue([Phobos normalPhobosCount] == 0, @"array shouldn't be empty");
[Phobos track:MockEventId attributes:attr]; [Phobos track:MockEventId attributes:attr];
[NSThread sleepForTimeInterval:0.2];
XCTAssertTrue([Phobos normalPhobosCount] == 1, @"array shouldn't be empty"); XCTAssertTrue([Phobos normalPhobosCount] == 1, @"array shouldn't be empty");
[Phobos track:MockEventId attributes:attr]; [Phobos track:MockEventId attributes:attr];
[Phobos track:MockEventId attributes:sendNowAttr sendNow:YES]; [Phobos track:MockEventId attributes:sendNowAttr sendNow:YES];
[NSThread sleepForTimeInterval:0.2];
XCTAssertTrue([Phobos normalPhobosCount] == 2, @"array shouldn't be empty"); XCTAssertTrue([Phobos normalPhobosCount] == 2, @"array shouldn't be empty");
[Phobos track:MockEventId attributes:sendNowAttr sendNow:YES]; [Phobos track:MockEventId attributes:sendNowAttr sendNow:YES];
[NSThread sleepForTimeInterval:0.2];
XCTAssertTrue([Phobos normalPhobosCount] == 2, @"array shouldn't be empty"); XCTAssertTrue([Phobos normalPhobosCount] == 2, @"array shouldn't be empty");
[Phobos track:MockEventId attributes:attr]; [Phobos track:MockEventId attributes:attr];
[NSThread sleepForTimeInterval:0.2];
XCTAssertTrue([Phobos normalPhobosCount] == 3, @"array shouldn't be empty"); XCTAssertTrue([Phobos normalPhobosCount] == 3, @"array shouldn't be empty");
} }
...@@ -242,15 +262,18 @@ NSString *const MockCityId = @"beijing"; ...@@ -242,15 +262,18 @@ NSString *const MockCityId = @"beijing";
// //
[Phobos track:MockEventId attributes:attr]; [Phobos track:MockEventId attributes:attr];
[NSThread sleepForTimeInterval:0.2];
XCTAssertTrue([Phobos normalPhobosCount] == 1, @"array shouldn't be empty"); XCTAssertTrue([Phobos normalPhobosCount] == 1, @"array shouldn't be empty");
// PhobosCacheKey超过50条数据会自动上报,模拟此情况 // PhobosCacheKey超过50条数据会自动上报,模拟此情况
for (int i = 0; i < 50; i++) { for (int i = 0; i < 50; i++) {
[Phobos track:MockEventId attributes:attr]; [Phobos track:MockEventId attributes:attr];
} }
[NSThread sleepForTimeInterval:0.2];
XCTAssertTrue([Phobos normalPhobosCount] == 1, @"array shouldn't be empty"); XCTAssertTrue([Phobos normalPhobosCount] == 1, @"array shouldn't be empty");
[Phobos track:MockEventId attributes:attr]; [Phobos track:MockEventId attributes:attr];
[NSThread sleepForTimeInterval:0.2];
XCTAssertTrue([Phobos normalPhobosCount] == 2, @"array shouldn't be empty"); XCTAssertTrue([Phobos normalPhobosCount] == 2, @"array shouldn't be empty");
} }
...@@ -294,6 +317,7 @@ NSString *const MockCityId = @"beijing"; ...@@ -294,6 +317,7 @@ NSString *const MockCityId = @"beijing";
[controller viewWillAppear:true]; [controller viewWillAppear:true];
[controller viewWillDisappear:true]; [controller viewWillDisappear:true];
[self paramUnNilCheck]; [self paramUnNilCheck];
[NSThread sleepForTimeInterval:0.2];
NSArray *array = [Phobos normalPhobosDataForServerAPI]; NSArray *array = [Phobos normalPhobosDataForServerAPI];
XCTAssertTrue(array.count != 0, @"PhobosCacheKey 下面应该有数据"); XCTAssertTrue(array.count != 0, @"PhobosCacheKey 下面应该有数据");
...@@ -303,11 +327,13 @@ NSString *const MockCityId = @"beijing"; ...@@ -303,11 +327,13 @@ NSString *const MockCityId = @"beijing";
} }
- (void)testSimulativePageViewEvent { - (void)testSimulativePageViewEvent {
[NSThread sleepForTimeInterval:0.2];
[Phobos.sharedClient simulativePV:nil businessId:nil referer:nil]; [Phobos.sharedClient simulativePV:nil businessId:nil referer:nil];
[self paramUnNilCheck]; [self paramUnNilCheck];
} }
- (void)paramUnNilCheck { - (void)paramUnNilCheck {
[NSThread sleepForTimeInterval:0.2];
NSArray *array = [Phobos normalPhobosDataForServerAPI]; NSArray *array = [Phobos normalPhobosDataForServerAPI];
XCTAssertTrue(array.count != 0, @"PhobosCacheKey 下面应该有数据"); XCTAssertTrue(array.count != 0, @"PhobosCacheKey 下面应该有数据");
...@@ -345,6 +371,7 @@ NSString *const MockCityId = @"beijing"; ...@@ -345,6 +371,7 @@ NSString *const MockCityId = @"beijing";
[dict setObject:@(0) forKey:@"is_push"]; [dict setObject:@(0) forKey:@"is_push"];
[Phobos track:@"page_view" attributes:dict]; [Phobos track:@"page_view" attributes:dict];
NSArray *array = [Phobos normalPhobosDataForServerAPI]; NSArray *array = [Phobos normalPhobosDataForServerAPI];
[NSThread sleepForTimeInterval:0.2];
XCTAssertTrue(array.count == 1, @"PhobosCacheKey 下面应该有数据"); XCTAssertTrue(array.count == 1, @"PhobosCacheKey 下面应该有数据");
[Phobos track:@"page_view" attributes:dict]; [Phobos track:@"page_view" attributes:dict];
...@@ -356,10 +383,13 @@ NSString *const MockCityId = @"beijing"; ...@@ -356,10 +383,13 @@ NSString *const MockCityId = @"beijing";
[NSThread sleepForTimeInterval:1];//模拟浏览页面,让out和in时间相差1s [NSThread sleepForTimeInterval:1];//模拟浏览页面,让out和in时间相差1s
[dict setObject:[PhobosUtil currentTime] forKey:@"out"]; [dict setObject:[PhobosUtil currentTime] forKey:@"out"];
[Phobos track:@"page_view" attributes:dict]; [Phobos track:@"page_view" attributes:dict];
[NSThread sleepForTimeInterval:0.2];
XCTAssertTrue([Phobos normalPhobosCount]== 2, @"PhobosCacheKey 上条数据应该发送"); XCTAssertTrue([Phobos normalPhobosCount]== 2, @"PhobosCacheKey 上条数据应该发送");
[Phobos track:@"page_view" attributes:dict]; [Phobos track:@"page_view" attributes:dict];
[NSThread sleepForTimeInterval:0.2];
XCTAssertTrue([Phobos normalPhobosCount] == 2, @"PhobosCacheKey 上条数据不应该发送"); XCTAssertTrue([Phobos normalPhobosCount] == 2, @"PhobosCacheKey 上条数据不应该发送");
[Phobos track:@"test" attributes:dict]; [Phobos track:@"test" attributes:dict];
[NSThread sleepForTimeInterval:0.2];
XCTAssertTrue([Phobos normalPhobosCount] == 3, @"PhobosCacheKey 上条数据应该发送"); XCTAssertTrue([Phobos normalPhobosCount] == 3, @"PhobosCacheKey 上条数据应该发送");
} }
......
...@@ -442,7 +442,7 @@ static dispatch_queue_t _normalQueue; ...@@ -442,7 +442,7 @@ static dispatch_queue_t _normalQueue;
} }
+ (void)track:(NSString *)eventName{ + (void)track:(NSString *)eventName{
[self track:eventName attributes:nil sendNow:NO currentAPI:_sharedClient.serverAPI]; [self track:eventName attributes:@{} sendNow:NO currentAPI:_sharedClient.serverAPI];
} }
+ (void)track:(NSString *)eventName attributes:(NSDictionary *)attributes{ + (void)track:(NSString *)eventName attributes:(NSDictionary *)attributes{
...@@ -454,7 +454,7 @@ static dispatch_queue_t _normalQueue; ...@@ -454,7 +454,7 @@ static dispatch_queue_t _normalQueue;
} }
+ (void)track:(NSString *)eventName currentAPI:(NSString *)currentAPI { + (void)track:(NSString *)eventName currentAPI:(NSString *)currentAPI {
[self track:eventName attributes:nil sendNow:NO currentAPI:currentAPI]; [self track:eventName attributes:@{} sendNow:NO currentAPI:currentAPI];
} }
+ (void)track:(NSString *)eventName attributes:(NSDictionary *)attributes currentAPI:(NSString *)currentAPI { + (void)track:(NSString *)eventName attributes:(NSDictionary *)attributes currentAPI:(NSString *)currentAPI {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment