2010-02-10 55 views
0

我有三個方案,Java的傳球價值

首先進行Selenium測試

import com.thoughtworks.selenium.*; 
import java.util.regex.Pattern; 
import junit.framework.*; 

public class MyTest extends SeleneseTestCase { 

int flag_eco; 

public void setUp() throws Exception { 
    setUp("http://www.mysite.com/", "*iexplore"); 
} 
public void testMyTest() throws Exception { 
    selenium.open("/pages/static/homepage_logout.html"); 
    selenium.type("username", "myuser"); 
    selenium.type("password", "password"); 
    selenium.click("//input[@value='LOGIN']"); 
    selenium.waitForPageToLoad("30000"); 
    selenium.click("Confirm"); 
    selenium.waitForPageToLoad("30000"); 
    selenium.click("link=Applications"); 
    selenium.waitForPageToLoad("30000"); 
    selenium.click("link=Journey"); 
    selenium.waitForPageToLoad("30000"); 
    selenium.click("link=Launch Application (MUST BE LOGGED IN)"); 
    selenium.waitForPageToLoad("30000"); 
    if((selenium.isTextPresent("Please enter one of the following:"))) 
    { 
     System.out.println("Journey Working Fine"); 
     flag_test= 0; 
    } 
    else 
    { 
     System.out.println("Journey Failed"); 
     flag_test = 1; 
    } 
    selenium.selectFrame("topmenu"); 
    selenium.click("link=Home"); 
} 
public static Test suite() { 
//method added 
return new TestSuite(MyTest.class); 
} 
public void tearDown(){ 
//Added . Will be called when the test will complete 
selenium.stop(); 
} 

}

那麼sendmail的從Selenium測試剛開值

 import java.util.*; 


     public class SendMail 
     { 
     public void send() 
     { 


     MyTest Test = new MyTest(); 
     if (Test.flag_test==1) 
      { 
      System.out.println("Journey Failed"); 
     } 
     else if(Test.flag_test==0) 
      { 
      System.out.println("Journey Working Fine"); 
      } 

} }

主類調用這兩個

 import java.io.*; 
    import javax.servlet.*; 

public class Test 
    { 
public static void main(String args[]) 
{ 


    MyTest tes = new MyTest(); 
      junit.textui.TestRunner.run(tes.suite()); 

    SendMail se = new SendMail(); 
    se.send(); 

} 
    } 

如何傳遞的標誌值從MyTest的Sendmail的

回答

1
  • 的標誌應該是public static(我沒有看到它在您提供的代碼中定義) - 在send()

    public class MyTest { 
        public static int flag; 
        // the rest of the code 
    } 
    
  • 你可以參考它MyTest.flag_test

請注意,這不是傳遞數據的好方法,但在您的情況下沒有更好的方法。

我認爲你正在做一些不該做的事情。下面是我的建議:

  • 此舉正在改變外測的標誌代碼
  • 包括它在測試中,在適當的地方(就好像它是存在的)
  • 包括在SendMail作爲好。

因此,您將不需要調用測試以獲取標誌。

+0

據我所知,MyTest上沒有靜態的'flag'字段。 – danben

+0

爲什麼downvote?我表示這是錯誤的,但這是唯一的方法。他不控制他的班級實例,所以他不能通過任何參考neigther從測試類 – Bozho

+0

@danben是的,我說這個標誌_應該是靜態的。我沒有看到它的定義,但這是要走的路 – Bozho

0

三個實現這一 1.通過測試作爲參數的SendMail(已經提到過) 2的方式寫在測試監聽器,(可觀察到圖案/的PropertyChangeSupport在Java)和把它掛。 (最佳國際海事組織) 3.寫入一個靜態對象,充當白板並從那裏讀取。 (一個窮人的消息隊列)

+0

但如上所述,該值並未通過該問題 – vetri02