基于oc实现阅读器文档1 联系客服

发布时间 : 星期三 文章基于oc实现阅读器文档1更新完毕开始阅读559b6f17c4da50e2524de518964bcf84b9d52d87

@\@\@\

[weakSelfkeywordsRequest:param];

[LBProgressHUDhideAllHUDsForView:weakSelf.viewanimated:NO];};// self.tableView.tableFooterView = footer;

self.tableView.tableHeaderView = footer; self.footer = footer;}

# pragma mark - 设置header footer高度 - (void)setupTableView {

self.tableView.sectionHeaderHeight = 0.1; self.tableView.sectionFooterHeight = 0.1;} #pragma mark - 点击取消,返回上一界面 -(void)cancel{

[YTNavAnimationNavPopAnimation:self.navigationController.view]; [[selfnavigationController] popViewControllerAnimated:NO]; }

#pragma mark - 点击“换一换”,修改关键词 -(void)keywordsRequest:(NSDictionary *)param{ AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

[manager GET :keyWordsUrl parameters:param

success:^(AFHTTPRequestOperation *operation, id responseObject) { NSArray *tempArr =

[YTsearchKeyWordsmj_objectArrayWithKeyValuesArray:[responseObjectvalueForKey:@\

NSMutableArray *tempStrArr = [NSMutableArray array]; for (YTsearchKeyWords *k in tempArr) { [tempStrArraddObject:k.book];}

[tempStrArraddObject:@\换一换\修改数组 _hotSearchWords = tempStrArr;//改变按钮内容 [weakfootersetKeywords:self.hotSearchWords];

}failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@\

#pragma mark - 搜索的网络请求

-(void)searchRequest:(NSDictionary *)param{ AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

[manager GET :searchUrlparameters:paramsuccess:^(AFHTTPRequestOperation *operation, id responseObject) {

//取总体模型,可以得到pagenum, pagesize ,pagetotal, totalnum这4个有用的数据

YTsearchAllResult *allresult =

[YTsearchAllResultmj_objectWithKeyValues:responseObject];

pagetotal = allresult.pagetotal; NSMutableArray *tempArr =

[YTsearchResultItemmj_objectArrayWithKeyValuesArray:[responseObjectvalueForKey:@\

YTresultGroup *groupWithbkey = [[YTresultGroupalloc]init]; YTresultGroup *groupNobkey = [[YTresultGroupalloc]init];

YTresultGroup *realGroupWithbkey = [[YTresultGroupalloc]init]; YTresultGroup *realGroupNobkey = [[YTresultGroupalloc]init]; //1.加载更多时,先取出groupNobeky if (_resultArr.count> 1) {

realGroupWithbkey = _resultArr[0]; realGroupNobkey = _resultArr[1];}

for (YTsearchResultItem *r in tempArr) { if ([r.bkeyisEqualToString:@\[groupNobkey.resultsArraddObject:r];

}else{[groupWithbkey.resultsArraddObject:r];}}

[realGroupNobkey.resultsArraddObjectsFromArray:groupNobkey.resultsArr]; [realGroupWithbkey.resultsArraddObjectsFromArray:groupWithbkey.resultsArr];//如果第一次,就直接装入数组

if (_resultArr.count< 1) {

[_resultArraddObject:groupWithbkey]; [_resultArraddObject:groupNobkey];

}else{ //如果是加载更多数据操作,就更新数组

[_resultArr replaceObjectAtIndex:0withObject:realGroupWithbkey]; [_resultArr replaceObjectAtIndex:1withObject:realGroupNobkey];} [self.tableViewreloadData];

}failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@\4.上拉刷新

#pragma mark - 上拉加载设置+自定义文字和图片 - (void)setupRefresh{

// 设置回调(一旦进入刷新状态,就调用target的action,也就是调用self的loadMoreData方法)

YTRotateRefreshIcon *footer =

[YTRotateRefreshIconfooterWithRefreshingTarget:selfrefreshingAction:@selector(loadMoreData)];// 设置图片

[footer prepare]; // 设置footer

self.tableView.mj_footer = footer;} #pragma mark - 加载更多数据 - (void)loadMoreData{ pageInt += 1;

if (pageInt<= pagetotal) {

[LBProgressHUDshowHUDto:self.viewanimated:NO];

NSString *pageStr = [NSStringstringWithFormat:@\NSDictionary *param = @{@\@\@\@\

[self searchRequest:param];// 拿到当前的上拉刷新控件,结束刷新状态 [self.tableView.mj_footerendRefreshing];

[LBProgressHUDhideAllHUDsForView:self.viewanimated:NO]; }else{

self.tableView.mj_footer = nil;

NSLog(@\已经没有数据了,让它无法刷新\@end

6.测试用例

软件测试是开发的最后一个环节,也是最重要的一个环节,只有通过科学有效的测试,才可以发现开发中的问题,做出及时的调整,达到软件上线的目的。

6.1.1白盒测试

白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。\白盒\法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。\白盒\法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。

6.1.2黑盒测试

黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件

功能进行测试。

6.1.3测试方案选择

本程序主要是实现手机阅读器功能,测试的主体应该是对象的功能是否健全,是否能够实现对应的功能。

6.2测试方案以及测试用例

测试编号 测试用例 操作步骤 输入数据 预期结果 实际结果 结果分析 1 在搜索栏输入搜索关键字 2 在书架添加电子书 1,点击添加按钮 2.点击某一条数据 3 阅读某本图书 1.打开主页面,点击《步步惊进入书城 2.点击精选,显示图书 3.选择某一本电子书 4 在书城阅1.打开主页面,点击《混沌》,进入阅读显示电子测试数心》,显示详情页,再次点击开始阅读 进入阅读页面 显示电子书的阅读界面 测试数据准确 点击《我是大明星》,点击加入书架 在搜索栏输入数据 完美 显示关于完美的搜索结果 加入成功,返回书架 显示关于完美的搜索结果 加入成功,返回书架 测试数据准确 测试数据准确