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

修改单元测试

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