存根方法返回不在单元测试中工作

时间:2016-05-25 15:02:27

标签: ios objective-c unit-testing ocmock

我正在使用OCMock进行单元测试。

我有一个单身课程while

find

在我的测试用例中,我想要保留Sub test() Dim flag As String, lastrow1 As Long, lastrow2 As Long, i As Long, j As Long flag = "no" lastrow1 = Range("A" & Rows.Count).End(xlUp).Row lastrow2 = Range("F" & Rows.Count).End(xlUp).Row ReDim set1(lastrow1) As String ReDim set2(lastrow2) As String For i = 1 To lastrow1 - 1 For j = 1 To 4 If j <> 3 Then out = out & Cells(i + 1, j) End If Next j set1(i) = out out = "" Next i For i = 1 To lastrow2 - 1 For j = 5 To 7 out = out & Cells(i + 1, j) Next j set2(i) = out out = "" Next i For i = 1 To lastrow1 For j = 1 To lastrow2 If set1(i) = set2(j) Then flag = "yes" End If Next j If flag = "no" Then Range("I" & i + 1).Value = "Not Match" Range("D" & i + 1).Interior.ColorIndex = 6 Else flag = "no" End If Next i End Sub 的返回值。我厌倦了以下事情:

MyManager

但是当我运行时,存根返回不起作用,它仍然返回真实的id。为什么?

1 个答案:

答案 0 :(得分:1)

它返回真实ID的原因是因为在您的实现中调用[self alloc]后,您正在处理MyManager的新实例。这意味着在[[self alloc] init]中,您最终会在不知道存根方法的全新实例上调用init

如果您想采用存根MyManager初始化的方法,则必须存根[mgrMock alloc][mgrMock init]以返回模拟对象。

本单元测试的精神,我的建议是完全修改这种方法,而只是简单地存根sharedManager以返回mgrMock。您的测试与单例的Id相关,并且应该假设初始化按预期工作。