2014-12-03 70 views
0

這是我的方法:assertSame Junit的測試

public static String passCheck(String x){ 
    return x; 
} 

這裏是我的測試吧:

Test 
public void pass(){ 
    Testcases testcases = new Testcases(); 
    String y = "mypassword123"; 
    assertSame(y, testcases.passCheck(x)); 

} 

爲什麼有無法找到一個錯誤,說變量x?

+0

哪裏是你的 「X」 變量聲明? – realUser404 2014-12-03 22:52:23

+0

你不是想寫'assertSame(y,testcases.passCheck(y));'? – 2014-12-03 22:52:36

回答

2

怎麼會有錯誤說變量x找不到?

因爲xpass聲明 - 這是passCheck聲明。這不在您的測試方法範圍內。這與JUnit無關 - 它只是普通的Java。

你想:

assertSame(y, testcases.passCheck(y)); 
+0

難道這只是比較y本身?我希望確保x和y是一樣的。 – 2014-12-03 22:55:34

+1

@AdamHorrigan:不,它會將'y'與調用'passCheck'方法的結果進行比較,其中傳遞給方法的參數是'y'的值。爲什麼不嘗試呢?改變'passCheck'返回別的東西,你會發現它失敗了......不清楚你爲什麼期望你的原始代碼能夠被編譯......把JUnit留在一邊,你對Java有多少經驗?儘管我很早就開始進行單元測試,但首先了解Java的基礎知識會有所幫助。 – 2014-12-03 22:57:19