测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
许可证 | BSD |
发布最后发布 | 2015年12月 |
由未经索赔维护。
依赖项 | |
Objection | ~> 1.2 |
libextobjc | ~> 0.3 |
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
<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 文件中。