在编写代码的过程中,把各项功能分开写出来,互不影响,这样可以方便的调用,在出现错误是,也可以很容易的找出错误,对编写代码有很好的帮助。
以数字游戏为例,用户输入4个不同的数字 ,与系统产生的随机4个数对比 如果同位置一样则显示几A位置不同但是有此数字则显示几B 都不同则0A0B 都猜对则游戏成功,6次失败则游戏失败
首先产生随机数
//
// Radom.h
// ShuZiYouXi
//
.
//
#import <UIKit/UIKit.h>
@interface Radom : NSObject
+(NSArray *)randomArray;
@end
//
// Radom.m
// ShuZiYouXi
//
#import "Radom.h"
@implementation Radom
+(NSArray *)randomArray
{
NSMutableArray *startArray = [[NSMutableArray alloc]initWithObjects:@"0",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9", nil];
NSMutableArray *resultArray = [[NSMutableArray alloc]initWithCapacity:0];
for (int i = 0; i < 4; i ++)
{
int k = arc4random()%startArray.count;
resultArray[i] = startArray[k];
startArray[k] = [startArray lastObject];//为了更好的乱序,交换下位置
[startArray removeLastObject];
}
return resultArray;
}//生成随机的4个数
@end
对比随机数和自己输入的数是否一样
//
// Compare.h
// ShuZiYouXi
#import <UIKit/UIKit.h>
#import "ViewController.h"
@interface Compare : NSObject //建立功能类是建立NSObject即可
+(NSString *)compare_info :(NSArray *)arr_random_numbers :(NSArray *)user_filled_numbers;
@end
//
// Compare.m
// ShuZiYouXi
//
//
#import "Compare.h"
#import "Radom.h"
@implementation Compare
+(NSString *)compare_info :(NSArray *)arr_random_numbers :(NSArray *)user_filled_numbers
{
int a_count = 0;
int b_count = 0;
for (int j = 0; j < user_filled_numbers.count ; j++)
{
for (int m = 0; m < arr_random_numbers.count; m++)
{
if ([[user_filled_numbers objectAtIndex:j]isEqualToString:
[arr_random_numbers objectAtIndex:m]])
{
if (j == m)
a_count++;
else
b_count++;
}
}
}
NSString *result_info = [NSString stringWithFormat:@"%dA%dB",a_count,b_count];
return result_info;
}
//arr_random_numbers和user_filled_numbers 是传进来的数 可以进行任意的更改 ,此方法与上一部分产生的随机数
没有直接的关联
@end
控制游戏的次数
//
// Compare.h
// ShuZiYouXi
//
#import <UIKit/UIKit.h>
#import "ViewController.h"
@interface Compare : NSObject
+(NSString *)compare_info :(NSArray *)arr_random_numbers :(NSArray *)user_filled_numbers;
@end
//
// NumberOfGame.m
// ShuZiYouXi
//
//
#import "NumberOfGame.h"
#import "Compare.h"
#import "Radom.h"
@implementation NumberOfGame
//- (void)viewDidLoad {
// [super viewDidLoad];
// self.view.backgroundColor = [UIColor whiteColor];
//
//}
+(NSString *)compare_result :(NSString *)comare_result :(int)count_number
{
NSString *label_text;
if (count_number < 6 )
{
if ([comare_result isEqualToString:@"4A0B"])
label_text = @"恭喜您猜对了!";
else
label_text = @"很遗憾,请再猜一次!";
}
else if (count_number == 6)
{
if ([comare_result isEqualToString:@"4A0B"])
label_text = @"恭喜您猜对了!";
else
label_text = @"对不起,游戏失败!";
}
return label_text;
}
@end
三个功能相互没有关联,单独写出来,要是有错误的地方会一目了然
测试用例
//
// ShuZiYouXiTests.m
// ShuZiYouXiTests
//
#import <UIKit/UIKit.h>
#import <XCTest/XCTest.h>
@interface ShuZiYouXiTests : XCTestCase
@end
@implementation ShuZiYouXiTests
- (void)setUp {
[super setUp];
// Put setup code here. This method is called before the invocation of each test method in the class.
}
- (void)tearDown {
// Put teardown code here. This method is called after the invocation of each test method in the class.
[super tearDown];
}
- (void)testExample {
// This is an example of a functional test case.
XCTAssert(YES, @"Pass");
}
- (void)testPerformanceExample {
// This is an example of a performance test case.
[self measureBlock:^{
// Put the code you want to measure the time of here.
}];
}
@end
测试功能时建个testcase 把测试的代码写进去测试即可
相关推荐
iOS sqlite 测试用例
小红书APP首页各模块测试用例汇总。首页各模块涵盖一至三级目录,共70条具体的测试用例的编写,步骤详细具体,内容描述完整,适合小红书各版本首页的测试。
很实用的ios平台下的app测试用例模板。除了知道测试用例到底怎么写,也能能看出,测试分为install\unstall\search\interface\control等各个部分额,长达90多条。不只是随便写几条的简单示例
GAMELOFT IOS游戏通用测试用例(非常全面)
xcode开发,单元测试用例Demo,有帮助
ios runloops 四个测试用例
shareSDK 测试用例 xcode7 新版本的sharesdk 测试成功。
excel编写的测试用例,功能为微信朋友圈,供刚入软件测试行业的小伙伴参考
iOS单元测试 demo 以及相关学习视频教程,总共包含8个demo以及3个视频
iOS Jenkins自动化集成测试示例
原文链接:https://blog.csdn.net/m0_37814112/article/details/120765776
FBSnapshotTestCase的Expecta匹配器匹配器。用法将Expecta+Snapshots添加到您的Podfile中,最新的FBSnapshotTestCase将作为依赖项出现。 pod 'Expecta+Snapshots'应用程式设定使用expect(view).to....
用一套代码执行Android/iOS测试用例 Test case层的代码高度利用,只需要考虑业务逻辑,无需关心系统平台及如何查找元素 以下代码在iOS和Android上均可运行 //打开我的朋友圈 public void showMyMoment(){ //打开微信...
demo 测试用,自测试用的
3.使用yaml文件编写测试用例,实现数据、用例与代码分离, 编写测试用例不用改变任何代码 4.框架结构: 安卓:python pytest + appium + yaml ios: python Facebook-wda + webdriveAgent + pytest 适用初学者和进阶...
Xcode中自带的一个单元测试框架,可以在您写完代码后写好测试用例,点击测试按钮,测试框架在编译时将为你执行完测试工作。
快手的sig3、sig、NStoken 的三个python算法源码,快手、快手概念版、快手极速版都可以使用
SnapshotLayerFailingTestCase 渲染为 ios-snapshot-test-case 层时失败的测试用例示例这是为了演示使用renderAsLayer方法时的布局错误。 不幸的是,结果,我们只能依靠 iOS7 来运行快照测试。禁用渲染为图层渲染为...
点击下载测试例子:sample下载完成后,解压。从终端进入:cdDownloads/samplecode-master/...:启动设备的版本号,比如此处的ios8.3:启动设备类型,真机测试还是模拟器测试;点击appium上的iOS图标,出现iossett
InstrumentDriver是Mobile自动化小组最近实现的基于instrument,针对iOS的自动化测试框架,目前支持java语言编写测试用例。研究过iOS自动化测试的同学肯定对instrumentUIAutomation有所耳闻,或者已经使用它进行自动...