MSSpec 0.1.2

MSSpec 0.1.2

测试已测试
语言语言 Obj-CObjective C
许可证 BSD
发布最后发布2015年12月

未经索赔维护。



 
依赖项
Objection~> 1.2
libextobjc~> 0.3
 

MSSpec 0.1.2

  • 作者
  • NachoSoto

这是什么?

MSSpec 是一个支持使用 Objection 注入模拟的 Kiwi Spec。在您的 spec 中使用模拟现在就像这样简单

MSSPEC_BEGIN(MSCarSpec)

MSMockClass(MSEngine);

__block MSCar *car;
__block MSEngine *engine;

beforeEach(^{
    // this instance will be created using the default injector
    car = MSInjectionCreateObject(MSCar);

    // this will be the same mock injected to car
    engine = MSInjectionCreateObject(MSEngine);
});

it(@"has a configured engine", ^{
    NSString *name = @"name";
    [engine stub:@selector(name) andReturn:name];

    [[car.engine.name should] equal:name];
});

MSSPEC_END

使用 Objection 非常简单

<MSSpec/MSInjection.h> 也包括一系列宏,使得使用 Objection 变得更加简单

  • MSInjectionRequireProperties:定义一个要注入类的属性列表。例如:MSInjectionRequireProperties(car, engine)
  • MSInjectionDesignatedInitializer:定义类的指定初始化器(默认是 init)。
  • MSInjectionCreateObject:实例化指定类的对象,并注入其所有依赖项。此对象使用 init: 初始化,除非使用了 MSInjectionDesignatedInitializer
  • MSInjectionInjectDependencies:如果对象已使用 MSInjectionRequireProperties 声明其依赖项,但是是在注入器生命周期之外分配的,则使用此方法立即注入依赖项。

依赖项可以通过两种方式之一注入:

  • 使用 MSInjectionCreateObject(ClassName) 实例化对象。
  • 在初始化过程中某个位置调用 MSInjectionInjectDependencies()

安装

使用 CocoaPods

target :App do
    pod 'MSSpec' # this gives you access to the MSInjection.h macros in your app.

    target :Tests do
        pod 'MSSpec/Tests' # MSSPEC macros for your tests.
    end
end

您不必添加 Objection 或 Kiwi。

最后

  • #import <MSSpec/MSInjection.h> 添加到主目标的 pch 文件中。
  • 并将 #import <MSSpec/MSSpec.h> 添加到测试目标的 pch 文件中。