2009-02-10 88 views
0

我是一個java的消息隊列客戶端(魔豆)上工作,現在我的測試是這樣的:如何測試消息隊列客戶端?

 
    //make sure our getJob can handle utf8 characters 
    @Test 
    public void testUTF8() { 
    bean = new Beanstalk(); 
    Job job = new Job(); 
    bean.putJob("€"); 
    job = bean.getJob(); 
    assertEquals("€", job.msg); 
    bean.close(); 
    } 

我讀過你不應該測試實際隊列本身的原因,而是沒有代碼,我寫但我寫的客戶端代碼 - 有沒有更好的方式來寫這個?我真的需要測試來保證自己,但除了風格之外,爲我的CI設置也是一件痛苦的事情。

回答

2

我不認爲編寫單元測試來確定/記錄外部庫的行爲有什麼問題。如果您在代碼庫中包含該測試,那麼您有一個事實記錄,即您的隊列需要支持UTF8;如果將來更改爲不同的排隊機制,該測試將會中斷並需要重寫,迫使新排隊機制的實施者考慮新系統是否也可以處理UTF8。在我看來,這是一件好事。

至於在CI中設置此項,我的建議是將其歸類爲集成測試,並在安裝了排隊支持的CI計算機上運行(如果有)。