【问题标题】:unable to mock XML.load method无法模拟 XML.load 方法
【发布时间】:2014-08-27 21:11:28
【问题描述】:

我正在我的 Scala 应用程序中试用 ScalaMock 我拥有的是一个 RSSReader,它使用XML.load(<urlString>) 从 XML 读取数据,如下面的代码所示

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

我是这样嘲讽的

"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 不是包 scala.xml 的一部分”的异常情况

我在这里做错了什么?是否可以模拟 XML.load 方法?

亲切的问候 马可

【问题讨论】:

    标签: scala unit-testing


    【解决方案1】:

    scala.xml.XML 是一个对象,Mockito 不能模拟对象,你可能需要检查ScalaMock(特别是here)。我通常做的是创建一个测试文件并将其用作测试用例,您实际上不需要模拟该方法。

    还要检查this questionthis question

    【讨论】:

      猜你喜欢
      • 2012-06-16
      • 1970-01-01
      • 2021-07-26
      • 2020-09-11
      • 2019-01-30
      • 2020-03-04
      • 1970-01-01
      • 1970-01-01
      • 2021-04-26
      相关资源
      最近更新 更多