【问题标题】:Create simple OCMock unit test in objective c在目标 c 中创建简单的 OCMock 单元测试
【发布时间】:2013-01-30 08:39:40
【问题描述】:

我为我的静态类库配置了 OCMock,并创建了这样的简单方法。

#import "IOSExample.h"
@implementation IOSExample

-(NSString *)MyTest
{
return @"Nuwanga";
}

-(int *)MyAge
{
    int a=5;
    int b=5;
    int product=a*b;
    return product;
}
 @end

在 OCUnit 测试中,我创建了这个方法,如下所示。

-(void)testMyAge
{
    int a=5;
    int b=5;
    int product=a*b;
    STAssertTrue((product > 0), @"The Product was less than zero");
}

我的问题是如何在 OCMock 单元测试中创建返回类型测试方法???

谢谢

【问题讨论】:

  • 阅读OCMock的文档标签。
  • 我不明白你的问题。 OCMock 用于“模拟”其他对象,替换方法以便编写没有外部依赖的单元测试。你想模拟一些东西还是只写一个普通的单元测试?
  • 另外,该代码很容易模拟。没有要模拟的类,只有一个方法。
  • NSObject 类中的这个类。我需要通过对类使用 Mock 对象来进行单元测试。我如何正确使用此方法 :: id mock1=[OCMockObject mockForClass:]
  • 你想在这里模拟什么?

标签: ios objective-c unit-testing ocmock


【解决方案1】:

也许你想做类似的事情

-(void)testMyAge
{
    IOSExample *exampleUndertest = [[IOSExample alloc] init];


    STAssertTrue(([exampleUndertest MyAge] > 0), @"The Product was less than zero");
}

问候, 昆汀

【讨论】:

    【解决方案2】:

    对于 TDD,您可以如下修改代码

    -(int *)MyAge:(int)inA and:(int)inB
    {
        int product=inA*inB;
        return product;
    }
    

    而你的测试用例会变成这样

    -(void)testMyAge
    {
        int product=[sut MyAge:5 and:5];
        STAssertTrue((product > 0), @"The Product was less than zero");
    }
    

    我认为在这种情况下不需要模拟。

    【讨论】:

      猜你喜欢
      • 2014-10-24
      • 1970-01-01
      • 2014-07-03
      • 2010-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多