2011-12-06 61 views
0

我有一些代碼在測試如下:MongoDB和Play!框架不一致行爲

@Test 
public void testRetrieveMongoDBFailUnkownHost() 
{ 
    //Set up test port and host on DSMongo 
    MyMongo mongoTest = new MyMongo(); 
    mongoTest.setHost("failure"); 
    mongoTest.setPort("0"); 

    //attempt to make the connection 
    try 
    { 
     mongoTest.attemptMongoConnection(); 
     assertTrue(false); 
    } 
    catch (Exception e) 
    { 
     assertEquals("Incorrect error message received: " + e.getMessage(),"Error (3013) : Unknown database host.", e.getMessage()); 
    } 

} 

而且嘗試MongoConnection()方法運行應該會失敗,未知的主機異常新蒙戈(主機,端口)方法。它不是在我的機器上失敗(不管我輸入什麼字符串而不是失敗),但它在我的同事機器上失敗。所以測試在我的機器上失敗並傳遞給他(即他得到例外)。任何想法都會導致我陷入困境!

感謝

保羅

編輯:在嘗試連接方法的代碼是

*/ 
public static void attemptMongoConnection() throws MYException 
{ 
    try {   
     singleMongo = new Mongo(getHost(), getPort()); 
     Logger.debug("Retrieved Mongo database from " + host); 
    } catch (UnknownHostException e) { 
     Logger.error("Unknown Host Exception", e); 
     throw new MYException(MYMessage.MY_UNKNOWN_HOST); 
    } catch (MongoException e) { 
     Logger.error("Mongo error", e); 
     throw new MYException(MYMessage.DS_MONGO_ERROR); 
    } 
} 

其中singleMOngo是蒙戈變量,和getHost和的getPort是我們設置的那些(。 e。失敗和0)。

+0

更新了問題。謝謝 – pbattisson

回答

1

我發現這是DNS的問題。當我在家裏運行它時(從我最初發布的帖子開始),它失敗了,似乎已經解決了「失敗」的名稱,所以當我改爲輸入諸如「localhost_123」之類的東西時,它完美地起作用。

我今天早上來到辦公室,它再次與「失敗」一起工作。做一些進一步挖掘似乎因此,我的路由器或在家裏的東西正在解決一個地址的「失敗」,它知道哪些不在辦公室的網絡上。

感謝所有看過這個的人。非常奇怪。