标签: ocmock

使用OCMock 1.77进行iOS4和Xcode 4/SDK4.3的单元和应用程序测试

我正在尝试使用OCMock 1.77进行iOS4和Xcode 4/SDK4.3的单元和应用程序测试.我按照说明使用OCMock作为静态库,在这里找到:http://www.mulle-kybernetik.com/software/OCMock/.没有OCMock,单元和应用程序测试运行良好.

当我添加OCMock并尝试运行OCMock的模拟器测试套件(单元测​​试)时,我的测试装置崩溃了代码134.测试装置运行良好的设备(应用程序测试).如果我查看控制台,我会看到下面的消息 - 这表明我没有按照上述URL中的说明添加-force_load链接器标志.但我有......有什么想法吗?

我看了一下:测试装置在iOS 4上使用OCMock验证代码134异常退出,这表明这种行为是一个错误 - 但我不确定它是否与我运行OCMock测试套件的情况相同.如果它是一个bug,有没有办法在单元测试中使用模拟?

TIA.

=====

控制台输出:

3/30/11 1:02:32 AM  otest[38552]    *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '** Expected method not present; the method getArgumentAtIndexAsObject: is not implemented by NSInvocation. If you see this exception it is likely that you are using the static library version of OCMock and your project is not configured correctly to load categories from static libraries. Did you forget to …
Run Code Online (Sandbox Code Playgroud)

iphone xcode objective-c ocmock

7
推荐指数
2
解决办法
2852
查看次数

OCMock期望和存根方法有什么区别?

我正在尝试使用OCMock来测试我的应用.但我很困惑,我们应该在哪里使用expect和在哪里使用存根?有人可以帮忙吗?

unit-testing stub expect ocmock

7
推荐指数
1
解决办法
3040
查看次数

iOS OCMock部分vs类模拟

我正在学习OCMock for iOS测试."类模拟"和"部分模拟"之间有什么区别,什么时候应该使用一个与另一个?

http://ocmock.org/features/

ocmock ios

7
推荐指数
1
解决办法
3781
查看次数

如何用OCMock模拟一个没有作为参数传递给方法的对象?

我有一个方法我想用OCMock测试,但不知道如何做到这一点.我需要模拟 ExtClass哪些未定义为我的代码(外部库)的一部分:

+(NSString *)foo:(NSString *)param
{
    ExtClass *ext = [[ExtClass alloc] initWithParam:param];
    if ([ext someMethod])
        return @"A";
    else
        return @"B";
}
Run Code Online (Sandbox Code Playgroud)

提前致谢!

unit-testing objective-c ocmock

7
推荐指数
1
解决办法
5816
查看次数

测试是否在视图控制器方法中调用performSegueWithIdentifier

我正在浏览一个应用程序并添加单元测试.该应用程序使用故事板编写,并支持iOS 6.1及更高版本.

我已经能够毫无问题地测试所有常用的返回方法.但是我目前难以接受我想要执行的某项测试:

基本上我有一个方法,让我们称之为doLogin:

- (IBAction)doLogin:(UIButton *)sender {

// Some logic here

if ( //certain criteria to meet) {
    variable = x; // important variable set here
    [self performSegueWithIdentifier:@"memorableWord" sender:sender];
} else {
    // handler error here
}
Run Code Online (Sandbox Code Playgroud)

所以我想测试是否调用segue并设置变量,或者加载MemorableWord视图控制器并且其中的变量是正确的.在doLogin方法中设置的变量将传递到prepareForSegue方法中的memorableWord segues的目标视图控制器.

我有OCMock设置和工作,我也使用XCTest作为我的单元测试框架.有没有人能够进行单元测试以涵盖这种情况?

对于这个领域的信息来说,Google和SO似乎相当简陋.很多关于简单基本测试的例子与iOS测试中更复杂的现实无关.

unit-testing objective-c ocmock ios xctest

7
推荐指数
1
解决办法
3471
查看次数

XCTest期望使用swift进行方法调用

如何编写一个使用swift和XCTest进行方法调用的测试?

我可以使用OCMock,但他们并没有正式支持swift,所以没有多少选择.

ocmock ios xctest swift ios8

7
推荐指数
1
解决办法
4594
查看次数

OcMock vs OcMockito - 什么是利弊

对于iOS tdd测试/模拟你会推荐哪个框架?我听说OcMock已经存在更长时间并且更轻巧.任何人都可以提供一些优点和缺点的例子或演示每个的优点.我只是在寻找一个快速的标准模拟框架,但我想知道每个框架的所有缺点/好处.

tdd xcode ocmock ios ocmockito

7
推荐指数
1
解决办法
1593
查看次数

我如何让OCMock让我在UIKit类上存根类别方法?

我正在尝试在我的应用程序的测试中模拟UITabBarController.我在另一个文件中的其他地方定义的类上有一个类别方法,它在我的测试类中与ocmock一起导入.我正在尝试的是这样的:

- (void) setUp
{
    id mockTabController = [OCMockObject mockForClass:[UITabBarController class]];
    [[[mockTabController stub] andReturn:nil] displayedViewController]; 
    // displayedViewController is the category method
}
Run Code Online (Sandbox Code Playgroud)

但是当我这样做并且测试到达那个存根调用时,我得到一个错误说:

[NSProxy doesNotRecognizeSelector:displayedViewController] called!
Run Code Online (Sandbox Code Playgroud)

是否有一些特定的东西我需要做以允许ocmock识别内置框架类中的类别方法?

iphone unit-testing ocmock uikit

6
推荐指数
1
解决办法
1782
查看次数

如何捕获发送给模拟的参数?

有谁知道如何捕获发送到OCMock对象的参数?

id mock = [OCMockObject mockForClass:someClass]
NSObject* captureThisArgument;
[[mock expect] foo:<captureThisArgument>]

[mock foo:someThing]
GHAssertEquals[captured, someThing, nil];
Run Code Online (Sandbox Code Playgroud)

我如何验证foo的参数?我很乐意在模拟定义中的一个块内执行它,但是如果我可以将对象取出以便我可以在以后确定它的特征就会很棒.

这可能与OCMock有关吗?

objective-c ocmock ios

6
推荐指数
1
解决办法
4655
查看次数

在OCMock中为一个类的所有实例模拟一个方法

我想使用OCMock为类的所有实例模拟一个实例方法,但是我没有类的实例来覆盖它,而是在我正在测试的方法中创建它.

所以我的问题是:是否可以为类的所有实例重写此方法,或者我是否需要将该实例注入方法而不是在方法内创建它?

[[ClassThatHasTheInstanceMethodToOverride andCall:@selector(callThisMethodInstead) onObject:self] someInstanceMethod];
Run Code Online (Sandbox Code Playgroud)

unit-testing objective-c ocmock

6
推荐指数
1
解决办法
1255
查看次数

标签 统计

ocmock ×10

ios ×5

objective-c ×5

unit-testing ×5

iphone ×2

xcode ×2

xctest ×2

expect ×1

ios8 ×1

ocmockito ×1

stub ×1

swift ×1

tdd ×1

uikit ×1