Commit 783bf483 authored by 井庆林's avatar 井庆林

修改单元测试

parent fb04b002
...@@ -55,7 +55,7 @@ NSString *const MockCityId = @"beijing"; ...@@ -55,7 +55,7 @@ NSString *const MockCityId = @"beijing";
[Phobos.sharedClient setCurrentCityId:MockCityId]; [Phobos.sharedClient setCurrentCityId:MockCityId];
[Phobos track:MockEventId]; [Phobos track:MockEventId];
[NSThread sleepForTimeInterval:0.2]; [NSThread sleepForTimeInterval:0.2];
NSArray<SendDataEntity *> *array = [Phobos fetchToBeSendPhobosData]; NSArray<PhobosSendDataEntity *> *array = [Phobos fetchToBeSendPhobosData];
XCTAssertTrue(array.count == 1, @"array is empty"); XCTAssertTrue(array.count == 1, @"array is empty");
NSDictionary *dict = [array.firstObject.data mj_JSONObject]; NSDictionary *dict = [array.firstObject.data mj_JSONObject];
[self verfiyDict:dict]; [self verfiyDict:dict];
...@@ -70,7 +70,7 @@ NSString *const MockCityId = @"beijing"; ...@@ -70,7 +70,7 @@ NSString *const MockCityId = @"beijing";
- (void)testTrackEventWithoutAttr{ - (void)testTrackEventWithoutAttr{
[Phobos track:MockEventId]; [Phobos track:MockEventId];
[NSThread sleepForTimeInterval:0.2]; [NSThread sleepForTimeInterval:0.2];
NSArray<SendDataEntity *> *array = [Phobos fetchToBeSendPhobosData]; NSArray<PhobosSendDataEntity *> *array = [Phobos fetchToBeSendPhobosData];
XCTAssertTrue(array.count == 1, @"array is empty"); XCTAssertTrue(array.count == 1, @"array is empty");
NSDictionary *dict = [array.firstObject.data mj_JSONObject]; NSDictionary *dict = [array.firstObject.data mj_JSONObject];
[self verfiyDict:dict]; [self verfiyDict:dict];
...@@ -85,8 +85,7 @@ NSString *const MockCityId = @"beijing"; ...@@ -85,8 +85,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<PhobosSendDataEntity *> *array = [Phobos fetchToBeSendPhobosData];
NSArray<SendDataEntity *> *array = [Phobos fetchToBeSendPhobosData];
XCTAssertTrue(array.count == 1, @"array is empty"); XCTAssertTrue(array.count == 1, @"array is empty");
NSDictionary *dict = [array.firstObject.data mj_JSONObject]; NSDictionary *dict = [array.firstObject.data mj_JSONObject];
[self verfiyDict:dict]; [self verfiyDict:dict];
...@@ -112,7 +111,7 @@ NSString *const MockCityId = @"beijing"; ...@@ -112,7 +111,7 @@ NSString *const MockCityId = @"beijing";
} }
/** /**
* @brief 测试立即发送带参数事件成功,不应该清除不立即发送的埋点 * @brief 测试立即发送带参数事件成功,应该把普通埋点也带上
* *
* @since 1.1.4 * @since 1.1.4
*/ */
...@@ -124,7 +123,6 @@ NSString *const MockCityId = @"beijing"; ...@@ -124,7 +123,6 @@ NSString *const MockCityId = @"beijing";
[Phobos track:MockEventId attributes:attr sendNow:NO]; [Phobos track:MockEventId attributes:attr sendNow:NO];
// When // When
[Phobos track:MockEventId attributes:sendNowAttr sendNow:YES]; [Phobos track:MockEventId attributes:sendNowAttr sendNow:YES];
XCTAssertTrue([Phobos fetchToBeSendPhobosDataCount] == 0, @"array should be empty"); XCTAssertTrue([Phobos fetchToBeSendPhobosDataCount] == 0, @"array should be empty");
} }
...@@ -138,16 +136,12 @@ NSString *const MockCityId = @"beijing"; ...@@ -138,16 +136,12 @@ NSString *const MockCityId = @"beijing";
[Phobos track:MockEventId attributes:attr sendNow:YES]; [Phobos track:MockEventId attributes:attr sendNow:YES];
// 因为实时埋点是异步删除,所以这个位置暂时延时取数据,待优化 TODO // 因为实时埋点是异步删除,所以这个位置暂时延时取数据,待优化 TODO
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.25 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ XCTAssertTrue([Phobos fetchToBeSendPhobosDataCount] == 0, @"array shouldn't be empty");
XCTAssertTrue([Phobos fetchToBeSendPhobosDataCount] == 0, @"array shouldn't be empty"); XCTAssertTrue([Phobos fetchToBeSendPhobosDataCount] == 0, @"array shouldn't be empty");
[Phobos track:MockEventId attributes:attr sendNow:YES]; [Phobos track:MockEventId attributes:attr sendNow:YES];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.25 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
XCTAssertTrue([Phobos fetchToBeSendPhobosDataCount] == 0, @"array shouldn't be empty"); XCTAssertTrue([Phobos fetchToBeSendPhobosDataCount] == 0, @"array shouldn't be empty");
[Phobos track:MockEventId attributes:attr sendNow:YES]; [Phobos track:MockEventId attributes:attr sendNow:YES];
XCTAssertTrue([Phobos fetchToBeSendPhobosDataCount] == 0, @"array shouldn't be empty");
});
});
} }
/** /**
...@@ -159,10 +153,7 @@ NSString *const MockCityId = @"beijing"; ...@@ -159,10 +153,7 @@ NSString *const MockCityId = @"beijing";
[Phobos removeAllPhobosData]; [Phobos removeAllPhobosData];
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 fetchToBeSendPhobosDataCount] == 1, @"array shouldn't be empty"); XCTAssertTrue([Phobos fetchToBeSendPhobosDataCount] == 1, @"array shouldn't be empty");
// PhobosCacheKey超过50条数据会自动上报,模拟此情况 // PhobosCacheKey超过50条数据会自动上报,模拟此情况
...@@ -170,12 +161,8 @@ NSString *const MockCityId = @"beijing"; ...@@ -170,12 +161,8 @@ NSString *const MockCityId = @"beijing";
[Phobos track:MockEventId attributes:attr]; [Phobos track:MockEventId attributes:attr];
} }
[NSThread sleepForTimeInterval:0.2]; XCTAssertTrue([Phobos fetchToBeSendPhobosDataCount] == 0, @"array shouldn't be empty");
XCTAssertTrue([Phobos fetchToBeSendPhobosDataCount] == 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 fetchToBeSendPhobosDataCount] == 2, @"array shouldn't be empty"); XCTAssertTrue([Phobos fetchToBeSendPhobosDataCount] == 2, @"array shouldn't be empty");
} }
...@@ -217,42 +204,6 @@ NSString *const MockCityId = @"beijing"; ...@@ -217,42 +204,6 @@ NSString *const MockCityId = @"beijing";
XCTAssertTrue([Phobos fetchToBeSendPhobosDataCount] == 1, @"array shouldn't be empty"); XCTAssertTrue([Phobos fetchToBeSendPhobosDataCount] == 1, @"array shouldn't be empty");
} }
/**
* @brief 测试不实时和实时穿插 2
*
* @since 1.1.4
*/
- (void)testTrackEventWithSendNowAndNoSendNowTwo {
[Phobos removeAllPhobosData];
NSDictionary *attr = @{@"attr":@"track_attr"};
NSDictionary *sendNowAttr = @{@"attr":@"track_attr_send_now"};
[Phobos track:MockEventId attributes:sendNowAttr sendNow:YES];
[NSThread sleepForTimeInterval:0.2];
XCTAssertTrue([Phobos fetchToBeSendPhobosDataCount] == 0, @"array shouldn't be empty");
[Phobos track:MockEventId attributes:attr];
[NSThread sleepForTimeInterval:0.2];
XCTAssertTrue([Phobos fetchToBeSendPhobosDataCount] == 1, @"array shouldn't be empty");
[Phobos track:MockEventId attributes:attr];
[Phobos track:MockEventId attributes:sendNowAttr sendNow:YES];
[NSThread sleepForTimeInterval:0.2];
XCTAssertTrue([Phobos fetchToBeSendPhobosDataCount] == 0, @"array shouldn't be empty");
[Phobos track:MockEventId attributes:sendNowAttr sendNow:YES];
[NSThread sleepForTimeInterval:0.2];
XCTAssertTrue([Phobos fetchToBeSendPhobosDataCount] == 0, @"array shouldn't be empty");
[Phobos track:MockEventId attributes:attr];
[NSThread sleepForTimeInterval:0.2];
XCTAssertTrue([Phobos fetchToBeSendPhobosDataCount] == 1, @"array shouldn't be empty");
}
/** /**
* @brief 测试不实时和实时穿插 3 * @brief 测试不实时和实时穿插 3
* *
...@@ -319,21 +270,19 @@ NSString *const MockCityId = @"beijing"; ...@@ -319,21 +270,19 @@ 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<PhobosSendDataEntity *> *array = [Phobos fetchToBeSendPhobosData];
NSArray<SendDataEntity *> *array = [Phobos fetchToBeSendPhobosData];
XCTAssertTrue(array.count != 0, @"PhobosCacheKey 下面应该有数据"); XCTAssertTrue(array.count != 0, @"PhobosCacheKey 下面应该有数据");
NSDictionary *dic = [array.firstObject mj_JSONObject][@"params"]; NSDictionary *dic = [array.firstObject.data mj_JSONObject][@"params"];
XCTAssertTrue([dic[@"referrer_id"] isEqualToString:@"rreferrerIdTest"], @"referrerId至少使用默认的空字符串"); XCTAssertTrue([dic[@"referrer_id"] isEqualToString:@"rreferrerIdTest"], @"referrerId至少使用默认的空字符串");
} }
- (void)paramUnNilCheck { - (void)paramUnNilCheck {
[NSThread sleepForTimeInterval:0.2]; NSArray<PhobosSendDataEntity *> *array = [Phobos fetchToBeSendPhobosData];
NSArray<SendDataEntity *> *array = [Phobos fetchToBeSendPhobosData];
XCTAssertTrue(array.count != 0, @"PhobosCacheKey 下面应该有数据"); XCTAssertTrue(array.count != 0, @"PhobosCacheKey 下面应该有数据");
NSDictionary *dic = [array.firstObject mj_JSONObject][@"params"]; NSDictionary *dic = [array.firstObject.data mj_JSONObject][@"params"];
XCTAssertTrue(dic[@"page_name"] != nil, @"page_name至少使用默认的空字符串"); XCTAssertTrue(dic[@"page_name"] != nil, @"page_name至少使用默认的空字符串");
XCTAssertTrue([dic[@"referer"] integerValue] >= 0, @"referer至少使用默认的空字符串"); XCTAssertTrue([dic[@"referer"] integerValue] >= 0, @"referer至少使用默认的空字符串");
XCTAssertTrue(dic[@"business_id"] != nil, @"business_id至少使用默认的空字符串"); XCTAssertTrue(dic[@"business_id"] != nil, @"business_id至少使用默认的空字符串");
......
...@@ -166,7 +166,7 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -166,7 +166,7 @@ NS_ASSUME_NONNULL_BEGIN
@interface NewPhobos (UtilTest) @interface NewPhobos (UtilTest)
/** 获取所有非立即发送埋点数量 */ /** 获取所有非立即发送埋点数量 */
+ (NSInteger)fetchToBeSendPhobosDataCount; + (NSUInteger)fetchToBeSendPhobosDataCount;
/** 获取待发送埋点数据 */ /** 获取待发送埋点数据 */
+ (NSArray *)fetchToBeSendPhobosData; + (NSArray *)fetchToBeSendPhobosData;
......
...@@ -421,7 +421,7 @@ static NSString *sdkVersion = @"1.4.0"; ...@@ -421,7 +421,7 @@ static NSString *sdkVersion = @"1.4.0";
@implementation NewPhobos (UtilTest) @implementation NewPhobos (UtilTest)
/** 获取所有非立即发送埋点数量 */ /** 获取所有非立即发送埋点数量 */
+ (NSInteger)fetchToBeSendPhobosDataCount { + (NSUInteger)fetchToBeSendPhobosDataCount {
return [PhobosDataManager fetchCountOfToBeSendEntities]; return [PhobosDataManager fetchCountOfToBeSendEntities];
} }
......
...@@ -161,7 +161,7 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -161,7 +161,7 @@ NS_ASSUME_NONNULL_BEGIN
@interface Phobos (UtilTest) @interface Phobos (UtilTest)
/** 获取待发送埋点数量 */ /** 获取待发送埋点数量 */
+ (NSInteger)fetchToBeSendPhobosDataCount; + (NSUInteger)fetchToBeSendPhobosDataCount;
/** 获取待发送埋点数据 */ /** 获取待发送埋点数据 */
+ (NSArray *)fetchToBeSendPhobosData; + (NSArray *)fetchToBeSendPhobosData;
......
...@@ -56,7 +56,7 @@ static NSManagedObjectContext *Phobos_defaultContext; ...@@ -56,7 +56,7 @@ static NSManagedObjectContext *Phobos_defaultContext;
} }
+ (NSUInteger)fetchCountOfEntitiesWithPredicate:(NSPredicate *)searchFilter { + (NSUInteger)fetchCountOfEntitiesWithPredicate:(NSPredicate *)searchFilter {
return [PhobosSendDataEntity MR_numberOfEntitiesWithPredicate:searchFilter inContext:Phobos_defaultContext]; return [[PhobosSendDataEntity MR_numberOfEntitiesWithPredicate:searchFilter inContext:Phobos_defaultContext] integerValue];
} }
+ (void)insertData:(NSDictionary *)data sendAPI:(NSString *)sendAPI completion:(MRSaveCompletionHandler)completion { + (void)insertData:(NSDictionary *)data sendAPI:(NSString *)sendAPI completion:(MRSaveCompletionHandler)completion {
......
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