CMFactory 1.4.1

CMFactory 1.4.1

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
发布最新发布2014年12月

Lucas Medeiros Leite维护。



CMFactory 1.4.1

  • Lucas Medeiros

本项目将FactoryGirl的想法引入iOS项目,它可以加载数据并解包它们为Mantle类或NSDictionary类。

联系方式

Lucas MedeirosCodeminer42福塔雷萨开发。

在Twitter上关注我们:@Codeminer42

开发要求

使用方法

  • 加载数据
#import "CMFixture.h"
#import "Kiwi.h"

SPEC_BEGIN(YourSpec)

    //If you use github's Mantle library                    
    beforeEach(^{
         YourClass *yourInstance = [CMFactory buildUsingMantleClass:[YourClass class] fromFixture:@"YourClass"];
         //Or
         NSArray *aColletion = [CMFactory buildUsingMantleClass:[YourClass class] fromFixture:@"People"];
    });

    //If you don't use github's Mantle library
    beforeEach(^{
         NSDictionary *dictionary = [CMFactory buildUsingFixture:@"YourClass"];
         //Or
         NSArray *aColletion = [CMFactory buildUsingFixture:@"People"];
    });

SPEC_END

之后,在您的测试项目中,您需要创建一个文件,其文件名与您的工厂名称相同(.json或.plist格式。例如:如果您的工厂名称是'People',并且您有people.json和其它people.plist文件,则将解包.json文件)

  • 动态创建实例
#import "CMFactory.h"
#import "Kiwi.h"

SPEC_BEGIN(YourSpec)

    specify(^{

        CMFactory *factory = [CMFactory forClass:[YourClass class]];

        [factory addToField:@"aFieldName" value:^{
             return @"www.codeminer42.com";
        }];

        YourClass *instance = [factory build];
        [[instance.aFieldName should] equal: @"www.codeminer42.com"];

    });

    context(@"when using sequence method", ^{

         __block CMFactory *factory;
         __block NSArray *images;

         beforeEach(^{
              factory = [CMFactory forClass:[CMImage class]];
              [factory addToField:@"url" sequenceValue:^(NSUInteger sequence) {
                  return [NSString stringWithFormat:@"www.github.com%d", sequence];
              }];
              images = [factory buildWithCapacity:3];
         });

         specify(^{
              [[images should] haveCountOf:3];
         });

         specify(^{

             for(NSUInteger i = 0; i < 3; i++) {
                 CMImage *image = [images objectAtIndex:i];
                  [[image.url should] equal:[NSString stringWithFormat:@"www.github.com%d", i]];
             }

         });

    });

SPEC_END
  • 请参阅示例代码

要求

CMFactory需要iOS 5.x或更高版本。

下一个版本

与核心数据集成以使用'create'等方法

许可证

使用受MIT许可证约束。有关详细信息,请参阅LICENSE。