我正在使用Swift和XCTest编写我的应用程序的UI测试,我必须摇动设备才能收到通知,请问如何在代码中生成摇动手势。
这个解决方案非常简单。你只需要发送 "com.apple.UIKit.SimulatorShake" 的 Darwin 通知即可。请看下面的示例代码:
SimulatorShaker.h
#import <Foundation/Foundation.h>
@interface SimulatorShaker : NSObject
+ (void)performShake;
@end
SimulatorShaker.m
#import "SimulatorShaker.h"
#import "notify.h"
@implementation SimulatorShaker
+ (void)performShake {
notify_post("com.apple.UIKit.SimulatorShake");
}
@end
目前在使用XCUITest时还不支持摇晃手势。如果可以的话,我建议您采用一种解决方法(例如双指轻敲?),或者使用像Appium这样支持摇晃手势的工具。
override var canBecomeFirstResponder: Bool {
return true
}
override func motionEnded(_ motion: UIEventSubtype, with event: UIEvent?) {
if motion == .motionShake {
print("Shaked")
}
}
UIViewController
子类中:override func canBecomeFirstResponder() -> Bool {
return true
}
motionEnded:withEvent:
方法:override func motionEnded(motion: UIEventSubtype, withEvent event: UIEvent?) {
if motion == .MotionShake {
print("Shaked")
}
}
祝你好运 :)