草庐IT

ios - iOS 上的 TDD 与调试

我最近一直在尝试进入iOS开发,到目前为止只看了几个截屏视频(斯坦福系列和其他一些),它们都有一个共同点。每个人都在谈论Instruments和调试器,但我还没有真正看到任何TDD或测试。作为一名Ruby开发人员,TDD基本上是自动的。我什至不记得上次不得不使用调试器是什么时候了。但仅从iOS工作流程来看,您必须编译整个应用程序,然后将其加载到模拟器中,这让我觉得进行快速TDD不会那么容易。在我当前的Ruby工作流程中,我倾向于每隔几秒或至少每分钟运行一次测试。但即使在一个简单的Xcode项目中,编译和运行测试也至少需要30秒(配备Core2Duo的MacBookPro)。我想我不能指

ios - OCMockito stub 单例共享实例方法

我使用OCMock对类lvl方法进行stub,效果很好。现在我需要使用OCMockito实现相同的行为。在OCMock中我有以下内容:_mock=mockClass([MySingletonclass]);OCMStub([_mocksharedSingleton]).andReturn(_mock);在我的例子中,我必须stubsharedSingleton方法,因为它在测试期间在多个地方使用。 最佳答案 OCMock直接stub单例的能力是通过方法调配完成的。对于OCMockito,我有意避免这种方法。我建议您使用某种形式的De

ios - Storyboard是否适合单元测试?

我正在认真审视一个带有Storyboard的新iOS项目,虽然它看起来很有吸引力,但我担心它会如何影响我的单元测试。通常我会加载我的nib并执行一些集成/功能/单元测试的混合。然而,对于Storyboard,所有内容都在一个文件中,我担心在每次测试的设置和拆卸过程中加载和卸载整个文件的成本。对于那些在大型项目中具有TDD经验和Storyboard的人。在使用Storyboard时,您是否注意到任何与测试相关的缺点?我很关心性能和保持单元测试的速度。也许还有其他问题我还没有注意到。我更愿意听到来自那里的第一手故事。 最佳答案 虽然在I

iphone - 测试 IBOutlets 自动连接或在未连接的 socket 上构建失败

有没有人想出一种方法来自动单元测试UIViewController子类上定义为IBOutlets的所有属性在加载View后连接(通过调用loadView)?我的理解是IBOutlet是经过预处理的,因此您无法在运行时确定哪些属性是IBOutlet。或者,如果您定义了未连接的IBOutlets,是否还有另一种方法可以强制构建失败?可能是LLVM编译器警告选项? 最佳答案 您可以使用断言,它会让您快速失败(引起您的注意)。-(void)viewDidLoad{[superviewDidLoad];NSAssert(self.myLabe

ios - 在 OCUnit 应用程序测试中绕过登录/身份验证

我刚刚使用OCUnit为我的iOS项目设置应用程序测试,并试图弄清楚如何处理身份验证。我的应用程序有一个强制登录屏幕,用户在进入主应用程序之前需要通过Facebook进行身份验证。当用户决定进行身份验证时,它会将他们弹出到Safari中,让他们通过由Facebook管理的身份验证序列,然后将他们带回应用程序(如果他们是新用户,则需要进一步的注册步骤)。我想弄清楚的是,我怎样才能让应用程序测试通过登录屏幕?我考虑过的一个选项是创建一个新的构建配置(例如“测试”),添加一个我可以在我的代码中检测到的预处理器宏(例如“TEST=1”)。然后,仅针对该测试配置,我可以将我的常规登录代码替换为不

ios - Objective C - 如何测试私有(private)变量

如何对隐藏变量aVar进行单元测试?//.hfile@interfaceClass:NSObject@end//.mfile@implementationClass{idaVar}@end 最佳答案 您可以将私有(private)变量移动到classextension,这使它们保持私有(private),但随后创建一个使它们公开的-Private类别。例如。//Class.h@interfaceClass:NSObject@end//Class.m@interfaceClass()@property(nonatomic,strong

ios - TDD:单元测试异步调用

小伙伴们:我正在开发一个应用程序,并通过单元测试构建它。但是,我现在处于需要测试异步调用的情况。例如,-(void)testUserInfoBecomesValidWhenUserIsBuiltSuccessfully{if(![userBuilderuserInfoUpToDate]){[userBuilderbuildUser];}STAssertTrue([userBuilderuserInfoUpToDate],@"Userinformationisnotvalidbeforebuildingtheuser");}测试此类事物的一般做法是什么?userInfoUpToDate预

PHPUnit、接口(interface)和命名空间 (Symfony2)

我目前正在为Symfony2开发一个开源包,并且真的希望它在单元测试覆盖率和一般可靠性方面成为狗的唠叨者,但是由于我缺乏PHPUnit知识,我遇到了一个障碍(或者一个复杂的场景,谁知道)..目前,我有一个Mailer类,用于处理个人邮件场景。它看起来有点像这样:mailer=$mailer;$this->router=$router;$this->templating=$templating;$this->parameters=$parameters;}}很简单,里面有一些Symfony2接口(interface)gubbins来处理不同的路由和模板系统,happyhappyhappy

php - 使用 PHPUnit 发送 POST 请求

我有一个symfony网站,我正在尝试做一些单元测试。我有这种测试,我尝试提交一些东西:request('POST','/',array("shopNumber"=>0099,"cardNumber"=>231,"cardPIN"=>"adasd"),array(),array());}但我不认为Controller正在接收我发送的数据:classHomeControllerextendsController{publicfunctionindexAction(){var_dump($_POST);die;return$this->render('AcmeBundle:Home:ind

php - Composer 建议的内部包方法

先介绍一些背景我们公司是一家只有四名开发人员的小型初创公司,正在开始将我们的产品重构为可重复使用的模块,以简化开发过程、提高生产力,并且在此过程中,我们希望在适当的地方引入单元测试。像往常一样,在小型初创公司中,我们不能浪费太多开发时间,但正如我们所见,这对于我们业务的中长期成功极为重要。目前,我们有两种最终用户产品。两者都是建立在我们自己的内部业务层之上的Laravel(PHP)应用程序,主要由web服务、restfulapi和庞大的数据库组成。此业务层为这些产品提供大部分数据,但每个产品的使用方式完全不同。除了维护和改进这两个即将完成的产品外,我们计划在不久的将来构建其他产品。为此