簡體   English   中英

如何編寫代碼來測試另一個類的代碼?

[英]How to I write code to test code from another class?

所以我應該編寫代碼來測試測試類中的方法,但是我完全迷失了。 我想我只是很困惑我是否必須糾正常規代碼,例如 for 循環,或者我是否能夠以另一種方式做到這一點。 我是 Java 新手,這給我帶來了很多麻煩!

這是我必須測試的界面中的一種這樣的方法:

    // Returns a reversed version of the specified string,
    // which can contain any ASCII character.
    // For example, returns "edcba" for "abcde" 
    public String reverseString(String s);

可以用來測試代碼的工具是assert關鍵字:

String str = "Hello World!";

assert str.equals("42") : "Not 42!"; // will throw an exception

assert exp1 : exp2如果exp1 的計算結果為false assert exp1 : exp2將拋出java.lang.AssertionError exp2是可選的,將是該錯誤的消息。

IE:

Exception in thread "main" java.lang.AssertionError: Not 42!

但是,默認情況下不啟用斷言。 運行程序時需要將-ea作為 VM 參數傳遞。

java <VM args> <Main class name> <program args>

例如:

java -ea Main

但是,如果您不想重新發明輪子,我會推薦JUnit作為測試框架。 它有很多工具可以幫助編寫測試代碼。 它也被廣泛使用,因此很容易找到有關的教程。

想法很簡單:使用各種參數調用該方法並檢查結果是否符合您的期望。 像 JUnit 這樣的框架將有助於組織測試代碼,但您也可以不用。

這是一個簡單的測試

String test = "abcde";
String reverse = reverseString(test);

if (reverse.equals("edcba"))
{
    // test passed
}
else
{
    // test failed
}

這很簡單。 您需要通過執行以下操作來調用該方法:

System.out.println(reverseClass.reverseString("Whatever String You Like"));

並且您還需要將反向字符串方法設為靜態。 如果您在控制台中看到您的預期結果,則您的方法有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM