- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个 View Controller ,它在 viewDidLoad 期间将自己添加为 UIApplicationDidBecomeActiveNotification 的观察者。我想验证是否发生了这种情况,但我不希望测试关心 View Controller 为事件注册的特定选择器。
目前我的测试看起来像这样:
- (void)testRegistersForApplicationDidBecomeActiveEvent
{
//given
MyViewController *sut = [MyViewController new];
NSNotificationCenter* mockNotificationCenter = mock([NSNotificationCenter class);
//when
[sut view];
//then
[verify([mockNotificationCenter]) addObserver:sut
selector:anything()
name:UIApplicationDidBecomeActiveNotification
object:nil];
}
...但是为选择器传递“anything()”会产生编译器错误:“ARC 不允许将 Objective-C 指针隐式转换为‘SEL’”。
如果我通过“@selector(applicationDidBecomeActive:)”而不是任何东西,我就可以使测试工作。这是 View Controller 使用的确切选择器。但如果可能的话,我更希望测试对具体实现没有那么多了解。
最佳答案
anything()
仅适用于 id
( from the OCHamcrest
API ),它表示一个对象,selector
表示一个方法。
我会在 GitHub 上提出问题,现在通过指定 exact 提供额外的测试知识。
我认为这应该是很容易的贡献(因为提供精确的选择器可以用于测试)
关于ios - 使用 OCMockito 如何验证任何选择器是否已传递给方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22569365/
如何使用 OCMockito 捕获具有原始值的参数? MKTArgumentCaptor 似乎只能捕获对象类型? Xcode 说“不兼容的整数转换指针”。 最佳答案 对于原始论点,您必须跳一些舞。假设
如何获取模拟对象的调用次数? 在测试的某个特定点,我想获取某个方法的当前调用计数,然后继续测试并最终验证该方法是否被再次调用。 这会是这样的: [given([mockA interestingMet
首先我模拟了一个对象。然后我做了一些应该调用对象的特定方法的事情。调用是异步的。 所以我想验证的是:最多5秒后,应该调用mock对象的这个方法。 有什么想法吗? 最佳答案 OCMockito 不支持异
我正在尝试验证模拟对象上的函数是否根本没有使用任何参数调用。 我正在模拟的对象的函数是... - (void)registerUserWithUsername:(NSString*)username
在使用 OCMockito 时,以下效果很好: DSAPIManager *mockAPIManager = mock([DSAPIManager class]); [given([mockAPIMa
我有一个具有只读属性的类。 typedef NS_ENUM(NSInteger, MyObjectStates) { MyObjectStatesUnknown, MyObjectStat
我使用 OCMock 对类 lvl 方法进行 stub ,效果很好。现在我需要使用 OCMockito 实现相同的行为。 在 OCMock 中我有以下内容: _mock = mockClass([My
我在 ClassA 中有这两个方法 -(IBAction)onSubmit; -(void)validateName:(NSString*)name; @实现 - (IBAction)onSubmit
我有一个 View Controller ,它在 viewDidLoad 期间将自己添加为 UIApplicationDidBecomeActiveNotification 的观察者。我想验证是否发生
我正在尝试测试基于 Storyboard的应用程序。该场景是一个导航 Controller ,里面有一个 View Controller 。测试是执行 segue 将 View Controller
这是我的单元测试的伪代码: int invocationCount given(mock).willDo { invocationCount++ return value } doSo
我无法编译这段代码: [verify(mockedContext) deleteObject:item1]; [verify(mockedContext) deleteObject:item2]; [
方法签名: - (void)updateFeaturesButtons:(NSInteger)gameId category:(FeatruesCategory)ca
OCMockito documentation claims it's possible to mock class objects ,但如果我能弄清楚怎么做,我该死。以下测试因 Expected "
对于 iOS tdd 测试/模拟,您会推荐哪个框架?我听说 OcMock 存在时间更长,而且更轻量级。任何人都可以提供一些优缺点的例子或演示每个的一些优点。我只是在寻找一个快速的标准模拟框架,但我想知
对于方法签名 - (void)insertValue:(NSUInteger)value; 我正在尝试查看是否永远不会调用任何值的 insertValue。 [verifyCount(test, ne
我想用以下消息声明模拟一个对象: - (void)createWithCompletion:(void (^)(FuseResult *result, NSError *err)) 完成; 是否可以模
我有一个类 QuestionBuilder 的 OCMockito 模拟,方法是 questionsFromJSON:error:。此方法接受句柄 (NSError **)error 作为参数。如何验
我正在尝试使用 OCMockito 来 stub NSJSONSerialization 方法。我以为我有一个解决方案,但事实证明它会导致此异常: *** -[__NSArrayM objectAtI
我在 Xcode 5 上使用 Cocoapods 设置 OCMockito(和 OCHamcrest)时遇到问题。这是我的 Podfile: platform :ios, '5.0' pod 'Res
我是一名优秀的程序员,十分优秀!