在我的游戏应用程序中,我打算模拟一个案例类。我可以这样做,但它创建了一个所有成员变量都为空的对象。
有没有办法创建案例类的模拟对象,以便该对象可以初始化一些成员?
case class User(name: String, address: String)
val mockUser = mock[User]
user.name // null
user.address //null
如何创建一个模拟用户,以便我可以为名称和地址分配一些值?
Edit:
我需要模拟对象的能力,因为我想要其中一个成员方法具有预定义的行为。 (此成员方法调用外部服务,并且我不希望在进行单元测试时调用外部服务。)该成员方法在另一个我想测试的成员方法内部调用。
它应该像这样简单:
when(mockUser.name).thenReturn("Bob")
据,直到...为止:
您永远不需要模拟案例类。这就像“嘲笑
整数”。
错误的。 (恕我直言)
val mockUser = User("mockName", "mockAddress") 有什么问题吗?
如果你不认为有什么问题就没什么
val mockFoo = FooWith20Properties("1", "2", "3",..."20")
您的测试会起作用,但您错过了使用模拟框架来减少测试样板的要点。
话虽如此,认为案例类别应该是最终的和不认为应该是最终的之间似乎确实存在分歧。如果你将你的标记为final,那么如果不诉诸像Powermock这样同样有争议的东西,mocking就不会起作用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)