Xcode 6,Swift和模拟验证,无例外

时间:2014-06-05 00:22:59

标签: swift ocmock

任何人都知道如何在Swift中验证OCMock的期望? Swift不使用异常,因此XCTest不再包含XCTAssertNoThrow。有没有其他方法来验证使用OCMock调用方法?我注意到在OCMock中,验证函数检查expectations数组,因此我假设如果我们有访问权限,我们可以XCTAssertTrue(mock.expectations == 0)

试图解决其中一些更复杂的问题,因为在Swift中几乎没有关于XCTests的文档

1 个答案:

答案 0 :(得分:1)

好的,这不是一个真正的答案,而是一个解决ObjC / Swift项目的问题。 编写一个将运行[mock verify]并返回bool的Object Wrapper。

创建一个Obj-c H和M文件。 在.h

+ (BOOL)verifyMock:(id)mock;

在.m

+ (BOOL)verifyMock:(id)mock
{
    BOOL called = YES;
    @try {
        [mock verify];
    }
    @catch (NSException *exception) {
        called = NO;
    }
    @finally {
        return called;
    }
    return called;
}

现在将此Obj-c文件添加到您的Bridging-Header文件中,以便swift可以访问。

在Swift XCTest文件中

XCTAssertTrue(YourWrapperClassName.verifyMock(mock), "Method was not called")