2011-10-27 31 views
-1

任何人都可以在Java測試代碼中的類下面? 我想看看如何準備這個。我們可以隨機準備嗎?任何人都可以做一個代碼來展示如何準備測試代碼

public class SortString { 

    public static void selectionSort(String[] s) { 
    for (int toInd = s.length-1; toInd > 0; toInd--) { 
     int indMax = 0; 

     for (int k = 1; k <= toInd; k++) { 
     if (s[indMax].compareTo(s[k]) < 0) { 
      indMax = k; 
     } 
     } 

     String temp = s[toInd]; 
     s[toInd] = s[indMax]; 
     s[indMax] = temp; 
    } 
    } 


    public static void show(String[] s) { 
    System.out.print('\n'); 

    for (int i = 0; i < s.length; i++) { 
     System.out.print(" " + s[i]); 
    } 
    } 


    public static void main(String[] args) { 
    String[] s = {"A", "Z", "C", "B", "1", "3", "2", "A", "C" }; 

    show(s); 
    selectionSort(s); 
    show(s); 
    } 

} 
+0

嗯......什麼? – Gabe

+1

好像你想單元測試你的代碼。然後在我看來,一系列固定陣列比隨機產生的陣列更好。這樣你的測試將是可重複的,並且你不需要編寫能夠驗證隨機生成的數組是否正確排序的代碼。您可能希望查看JUnit以構建您的單元測試。 – Laf

+0

你想要測試什麼? '測試代碼'並不是一個通用的東西,但需要面向某些東西。另外,你想用什麼框架? [JML?](http://www.cs.ucf.edu/~leavens/JML/)[JUnit?](http://www.junit.org/) – ewok

回答

2

這是一個JUnit測試測試的情況下,你在打印的main():

import org.junit.Test; 
import static org.junit.Assert.*; 

public class SortStringTest { 
    @Test 
    public void testSelectionSort() { 
     String[] s = {"A", "Z", "C", "B", "1", "3", "2", "A", "C"}; 
     String[] expected = { "1", "2", "3", "A", "A", "B", "C", "C", "Z"}; 

     SortString.selectionSort(s); 
     assertArrayEquals(expected, s); 
    } 
} 

你可能要拿出一些更多的情況下,試圖測試實施的各個方面。

相關問題