2015-08-20 79 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

相關問題