您可以在对象扩展的特征中定义方法.然后简单地模拟特征:
trait Login { def login(userName: String, password: String): Boolean } object TempScalaService extends Login { def login(userName: String, password: String): Boolean = { if (userName.equals("root") && password.equals("admin123")) { return true } else return false } } //in your test val service = mock[Login]
您无法模拟对象,尝试将代码移动到类:
class TempScalaService() { def login(userName: String, password: String): Boolean = { if (userName.equals("root") && password.equals("admin123")) { return true } else return false } }
并创建一个服务:
object TempScalaService { private val service = TempScalaService() def apply() = service }
使用依赖注入框架会更好,但它现在可以工作.
现在,为了测试,使用:
val service = mock[TempScalaService] when(service.login("user", "testuser")).thenReturn(true)