2014-08-27 168 views
0

我在我的斯卡拉應用嘗試ScalaMock 我有什麼是RSSReader這下面無法嘲笑XML.load方法

class ScalaRssFinancialDataReader 
    .... 
    def fetchRSS(url:String) = XML.load(url) 
    .... 
} 

我嘲笑它在代碼中使用XML.load(<urlString>),就像從XML讀取數據這樣

"fetching global economics mocking XML trait" should "return data" in { 

    val xmlFragment = <item><title>foo</title><author>a</author></item> 
    val xmlMock = mock[scala.xml.XML] 
    val tradingEconomicsUrl = "http://www.tradingeconomics.com/russia/rss" 

    (xmlMock.load_).expects(tradingEconomicsUrl).returns(xmlFragment) 

    val rssReader = new com.worldcorpservices.rss.reader.ScalaRssFinancialDataReader() 

    val res = rssReader.fetchRssData("http://www.tradingeconomics.com/russia/rss", "RUSSIA") 

    assert(res.size() == 1) 

} 

問題是,我不斷收到異常「XML不是p ackage scala.xml

什麼時許ID的一部分在這裏錯了嗎?是否有可能嘲笑XML.load方法?

親切的問候 馬爾科

回答

0

scala.xml.XML是一個對象,可以的Mockito不模仿對象,你可能要檢查ScalaMock爲(expecially here)。我通常所做的就是創建一個測試文件並將其用作測試用例,但您並不需要模擬該方法。

還請檢查this questionthis question