2014-08-27 125 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