问题描述
我的要求是,当用户单击UIViewController中的按钮并开始使用XCTest进行测试时。
我能够执行直接测试并启动应用程序。
我有2个问题:
- 当用户单击按钮时,无法从View开始测试。
- 无法执行控制器类中的简单方法。
MySampleAppUITests.m
<pre><code>
#import <XCTest/XCTest.h>
#import "ViewController.h"
@interface MySampleAppUITests : XCTestCase
@property (nonatomic,strong) XCUIApplication *app;
@property (nonatomic,strong) UIWindow *window;
@property (nonatomic,strong) ViewController *viewController;
@end
@implementation UITestSampleUITests
@synthesize viewController = _viewController,window=_window;
- (void)setUp {
[super setUp];
self.continueAfterFailure = NO;
self.app = [[XCUIApplication alloc] init] ;
[self.app launch];
_window = UIWindow.alloc.init;
NSBundle *bundle = [NSBundle bundleWithIdentifier:@"com.at.MySampleApp"];
if (bundle == nil) {
bundle = [NSBundle bundleForClass:[self class]];
}
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle: bundle];
_viewController = (ViewController *)[storyboard instantiateViewControllerWithIdentifier:@"ViewController"];
}
- (void)testSum {
int result = [_viewController sum:4 and:5]; //caught "NSInvalidArgumentException","-[UIViewController sum:and:]: unrecognized selector sent to instance 0x7fca6a472bb0"
XCTAssertEqual(result,9);
}
</pre></code>
// --- 我的Viewcontroller.m文件 ---- //
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"viewDidLoad");
}
- (int)sum: (int)a and:(int)b {
return a+b;
}
我还想问用户单击按钮时是否可以从View开始测试?因为我正在搜索并尝试了过去两天,但找不到,所以我在这里发布了这个问题。
谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)