我正在编写一些单元测试,并且由于这个特定应用程序的性质,让我尽可能地上UI
链很重要。因此,我想做的是以编程方式触发按钮的按下,就好像用户已经按下了GUI
。
(是的,是的,我可以调用IBAction
选择器,但是再次,此特定应用程序的性质使我必须伪造实际的按钮按下,以便IBAction
从按钮本身进行调用,这一点很重要。)
首选的方法是什么?
您能解释为什么伪造按钮触摸而不是直接调用action方法很重要吗?确实没有实际差异。
—
Jasarien
@Jasarien:好吧,因为有区别!;)在我的应用中,多个按钮使用相同的操作方法,该方法根据按钮的标签解析行为方式。因此,单元测试除了通过该方法测试一个特定的代码路径外,(a)还需要对它们进行全部测试,并且(b)还要验证按钮是否正确接线。另外,它很好地抽象了我的单元测试套件,因为我可以将单元测试定义为文本文件中的行,如下所示:“ 1 + 2 = 3”,其中“ 3”是预期的结束显示,以及之前的所有内容按下哪个按钮。
—
奥利(Olie)2010年
那么您的操作方法是否没有(id)sender参数?您不能只调用该方法并将按钮作为发送者传递吗?
—
Jasarien
由于测试工具的抽象性质,我不知道需要为特定按钮调用的方法。我想我可以深入研究按钮并获得它,但是这样做sendActionsForControlEvents:为我完成所有这些工作,出错的机会更少,并且使测试抽象化并适合设计。
—
Olie