2016-03-21 10 views
2

Ich habe folgende Testmethode, die Parameter von Excel-Blatt nimmt. Sagen wir, ich habe 5 Testfälle, also wird diese Methode 5 Mal ausgeführt. Aber als ich die ersten Testfall ausführen (TC01) die Test() Methodennamen sollten zur Laufzeit nach Test scrips wie Test_TC01 ändern(), Test_TC02() usw.Wie ändert man den Methodennamen zur Laufzeit in Java?

@Test 
public void Test() throws Exception { 

    ExcelUtils.setExcelFile(System.getProperty("user.dir") + "\\src\\data_engine\\DataEngine.xlsx"); 
    DOMConfigurator.configure("log4j.xml"); 
    String Path_OR = System.getProperty("user.dir") + "\\src\\config\\OR.properties"; 
    FileInputStream fs = new FileInputStream(Path_OR); 
    OR = new Properties(System.getProperties()); 
    OR.load(fs); 

    DriverScriptTest startEngine = new DriverScriptTest(); 

    startEngine.execute_TestCase(); 

} 

Bitte teilen Sie Ihre Kommentare

+0

Ist Reflexion ein Muss für Ihr Problem? Warum nicht Fabrikmuster verwenden? – Willmore

+0

einen Methodennamen ändern? Was nützt das? jemals von String-Verkettung gehört? – Stultuske

+0

ich denke, er meint varargs in der methode signatur? [ref] (http://stackoverflow.com/questions/519752/java-params-in-method-signature) –

Antwort

1

Kurz Du kannst nicht.

Was Sie tun können, ist eine neue Klasse (zur Laufzeit!) zu erstellen, kompilieren Sie es und führen Sie es aus.

Ja, was ich rede ist, dass Sie schreiben Code:

  1. die Klasse erstellen (in einer temporären Datei)
  2. Verwenden Sie die Java Compiler API die Klasse zu kompilieren.
  3. Die Methoden der kompilierten Klasseninstanz aufrufen.

Viel Glück! Ich habe mit diesem Code gearbeitet und es ist sehr interessant, aber fast immer Overkill, es sei denn, du brauchst es wirklich.

Verwandte Themen