Dan*_*ani 1 unit-testing scala mocking
我是 Scala 单元测试的新手,我找不到一种方法来存根在单例对象中定义的函数。
例如:
class Profile {
def getLatest
...
Feed.getLatestEntries
...
}
object Feed {
def getLatestEntries: Future[List[FeedEntry]] { /* Access some API*/ }
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试对getLatestProfile 类中定义的函数进行单元测试。由于我不想在我的单元测试中通过 Web 实际访问外部 API,因此我试图存根Feed对象及其getLatestEntries函数以返回一些预定义的值。
我研究了 ScalaMock、EasyMock 和 Mockito 框架,但找不到一种方法来存根单例对象的方法。ScalaMock 状态
为什么所有的模拟框架都不提供这个功能?我怎样才能做到这一点?存根Feed.getLatestEntries?
谢谢
我的方法是将单例的逻辑创建为特征,然后让对象扩展特征。这允许我将 Singleton 作为默认或隐式参数提供,但提供用于测试的存根实现
trait FeedLogic {
def getLatestEntries: Future[List[FeedEntry]] { /* Access some API*/ }
}
object Feed extends FeedLogic
def somethingWantingFeed(...)(feed: FeeLogic = Feed) = { ??? }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2499 次 |
| 最近记录: |