我的应用程序中有一个UIbutton。当我点击按钮时,它将删除NSMutableArray中的最后一个对象。为此,我想写单元测试。请任何一个给我你的建议。IOS中的单元测试
我用这个代码,当其上执行的UIButton点击了解:
[viewControllerObject.backButton1 sendActionsForControlEvents:UIControlEventTouchUpInside];
感谢, 瑞奇。
我的应用程序中有一个UIbutton。当我点击按钮时,它将删除NSMutableArray中的最后一个对象。为此,我想写单元测试。请任何一个给我你的建议。IOS中的单元测试
我用这个代码,当其上执行的UIButton点击了解:
[viewControllerObject.backButton1 sendActionsForControlEvents:UIControlEventTouchUpInside];
感谢, 瑞奇。
XCode本机支持单元测试。如果您启动一个新项目,请查找“包含单元测试”的复选标记。如果你使用它,你将会有一个名为<project_name>Tests
的文件夹。在那里打开.m文件,你会看到一个可以放置测试的- (void)testExample
方法。
您可以使用多种功能进行测试,如STAssertTrue
和STAssertNotNil
。看看这里的苹果文档:https://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/UnitTesting/03-Writing_Test_Case_Methods/writing_tests.html#//apple_ref/doc/uid/TP40002143-CH4-SW1
在你的情况,你也许可以做这样的事情:
NSInteger arrayCount = mArray.count;
[yourInstance performButtonAction];
STAssertEquals(arrayCount -1, mArray.count);
如何从apptest.m向viewcontroller调用buttonAction。 – user1844142 2013-04-05 13:46:44
由于测试是独立运行的,您可以在'setup'方法中创建viewController。这样你就有了一个本地参考。 – 2013-04-05 14:25:57
在“单位”的水平还有你测试两件事情:
忽略第一个,这是苹果的问题(或者说它是一个集成测试)。第二个很简单,如果你考虑组装,行为,断言过程:
-(void)testRemovalOfLastObjectOnButtonAction
{
//... build and populate the view controller
id lastObject = [array lastObject];
[viewController buttonTapped: sender];
STAssertFalse([array containsObject: lastObject], @"Object %@ should be removed", lastObject);
}
注意我明确的最后一个对象是否删除了测试,而不是数是否递减:如果任何对象中删除的可能发生。
嗨OMZ,我得到测试失败,当我执行上述code.it正确与否? – user1844142 2013-04-05 13:31:58
@ user1844142什么具体是失败?如果断言失败,那么你的代码不会从数组中移除对象。 – 2013-04-05 13:55:27
wt你想要?你想创建按钮的最后一个OBJ数组的方法 – iPatel 2013-04-05 09:06:14
我正在使用单元测试,所以如何检查这个按钮是点击使用像XCTAssertTrue等 – 2014-07-07 06:31:53