2015-08-20 42 views
-1

这是一个钝角问题的东西,但我想写以下方法单元测试:如果bool x = FALSE,我该如何强制if(x)评估为TRUE?

+ (BOOL)alwaysTrue:(NSError **)error { 
    BOOL alwaysFalse = FALSE; 
     if (alwaysFalse) { 
      if (error) { 
       //Assign a value to error 
      } 
      return FALSE; 
     } 
     return TRUE; 
} 

而且我想,以确定是否存在来自外部方法一些方法来操纵它这样alwaysFalse可分配的TRUE值,并且可以由该方法返回的FALSE

+0

这可能是一个简单的答案,但你当然可以设置alwaysFalse = TRUE,如果它是可分配的。 –

+0

但是,如果不直接修改这个源代码,你会怎么做呢? (这是练习 - 方法是按照预期编写的) –

+1

这是真正的方法吗?为什么? if语句永远不会是真的。它将始终返回“TRUE”。为什么不简单地有一个单行的实现:'return TRUE;'?顺便说一句 - 'BOOL'应该只使用“YES”和“NO”。不是'TRUE'或'FALSE'。 – rmaddy

回答

0

如果x = false,然后x || true将始终评估为true。如果这是你如何进行单元测试,我敢打赌有一个更好的方法来写你的原始功能。发布它,如果你正在寻找改进建议。

+0

问题中的代码是行代码,原始函数,写入给定的规范。我同意这种方法很荒谬,但是我戴上了我的好战士头盔并按照命令写下了它。 现在的任务是找到一些方法来打破它(没有重写它) –

+0

我看 - 有点,哈哈。在这种情况下,不,该方法将始终返回“FALSE”。 'alwaysFalse'的范围规则表明即使名称相同,也不会有“全局”变量覆盖它。 – Eric

相关问题