Tag: 生成代码

使用Sourcery在iOS中自动生成委托存根

代表们,代表们! iOS喜欢代表。 它们在Apple的大多数框架中都使用过,我对您一无所知,但最终我在自己开发的每个应用程序中一遍又一遍地编写自己的应用程序。 在测试代​​码时,您必须编写许多手动存根和样板来测试调用委托的类,谁愿意编写比他们需要的代码更多的代码! 任何额外的工作都会使测试在整个团队中进行的可能性降低,并且在进行测试时会变得越来越精明。 每当您定义代理人BAM时,Sourcery都可以在此提供帮助。 在下一次编译时,会生成一个存根并将其添加到您的测试目标中,所有内容都会充实并准备就绪。 如果您不知道Sourcery是什么,它是一个元编程工具包,可以“ 扫描源代码,应用个人模板并为您生成Swift代码,从而使您可以使用元编程技术来节省时间并减少潜在的错误。” 这太疯狂了。 这篇文章不是Sourcery的完整介绍(尽管我们将在您的项目中进行设置)。 如果您想查看一个好的介绍,请转到Ray Wanderlich的教程。 它很好地解释了它并引导您完成它。 这是我们将做的一个例子: 代表定义: 协议AutoStub {} 协议OnboardingViewDelegate:AutoStub { func tappedLogin(用户名:字符串,密码:字符串)->布尔 func tappedRegister(用户名:字符串,密码:字符串) } 生成的存根: //使用Sourcery 0.7.2生成-https://github.com/krzysztofzablocki/Sourcery //不要编辑 类OnboardingViewDelegateStub:OnboardingViewDelegate { var namedTappedLogin:Bool = false var称为TappedLoginWithParamUsername:字符串? var namedTappedLoginWithParamPassword:字符串? var tappedLoginReturnValue:布尔? func tappedLogin(用户名:字符串,密码:字符串)->布尔{ self.drawnTappedLogin = true self.CalledTappedLoginWithParamUsername =用户名 self.CalledTappedLoginWithParamPassword =密码 返回self.tappedLoginReturnValue! } var namedTappedRegister:Bool = false […]