首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用OCMock测试类方法

使用OCMock测试类方法
EN

Stack Overflow用户
提问于 2014-12-09 19:37:42
回答 1查看 711关注 0票数 1

根据OCMock的文档,测试类方法应该是可能的,但我可能误解了OCMock可以测试什么和不可以测试什么。以我想要测试的以下示例方法为例:

代码语言:javascript
复制
- (void)methodToTest {
    [SVProgressHUD dismiss];
}

我想测试一下在SVProgressHUD上是否调用了dismiss。我目前使用下面的测试,但这似乎没有起到作用。

代码语言:javascript
复制
- (void)testMethodToTest {
    // Create Mock Progress HUD
    id mockProgressHUD = OCMClassMock([SVProgressHUD class]);

    // Configure Mock Progress HUD
    OCMStub(ClassMethod([mockProgressHUD dismiss]));

    // Invoke Method to Test
    [object methodToTest];

    OCMVerify([mockProgressHUD dismiss]);
}

是否可以使用OCMock测试是否在SVProgressHUD上调用了dismiss

EN

回答 1

Stack Overflow用户

发布于 2014-12-10 00:32:15

你的测试对我来说通过了。也许这是你的实现中的一些微妙之处?什么是object?以下是我的简化版本:

代码语言:javascript
复制
@interface Foo : NSObject
+ (void)dismiss;
@end

@implementation Foo
+ (void)dismiss
{
    NSLog(@"Dismiss!");
}
@end

@interface Bar : NSObject
- (void)methodToTest;
@end

@implementation Bar
- (void)methodToTest
{
    [Foo dismiss];
}
@end

- (void)testClassMock
{
    Bar *bar = [Bar new];

    id mockFoo = OCMClassMock([Foo class]);
    OCMStub(ClassMethod([mockFoo dismiss]));

    [bar methodToTest];

    OCMVerify([mockFoo dismiss]);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27378032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档