2014-10-27 91 views
0

的問題可能是最好的一個簡單的例子問:我應該複製測試數據並聲明數據嗎?

var myObj = { name: 'John' }; 
var copiedObj = ObjectCopier.copy(myObj); 

copiedObj.name.should.equal('John');  // Hard code 'John' twice 
copiedObj.name.should.equal(myObj.name); // Reference the original value 

優於另一種方法是什麼?假設傳入的值是我期望返回的值,那麼第二個assert中是否有任何傷害?它甚至重要嗎?

回答

1

在更復雜的情況下,您將無法完全複製對象 - 而且您不想。倒不如這樣寫的:

var OBJ_NAME = 'John' 
var myObj = { name: OBJ_NAME }; 
var copiedObj = ObjectCopier.copy(myObj); 

copiedObj.name.should.equal(OBJ_NAME); 

這樣你不會複製任何代碼/定義,你也可以做測試,如:

myObj.name.should.equal(OBJ_NAME); 

測試的對象不是複印機更改原始對象(其中任一行不會測試)。

相關問題