我有一个scala类a,其中有一个方法dosomething
。
还有一个B类
class B(name: String)
class C {
def doSomethingElse(b: B): String {
/// some logic
////
}
}
class A(c: C) {
def doSomething(uuid: UUID): String {
val b = new B("hello)
c.doSomethingElse(b)
// some logic
}
}
val mockC = mock[C]
val b = new B("hello")
(mockC.doSomethingElse _).expects(b).returning("A");
Thilo的评论是对的--您的两个b
s将作为上面的引用进行比较,由于它们不是同一个对象,所以它们不相等。对于内容相等,您需要一个适当的equals
实现。如果您将B设为case class
,那么在Scala中您就可以免费获得这一信息。但是,如果您不能更改类B,那么在ScalaMock中使用谓词mather可能有助于您在测试期间比较这两个实例。在此阅读:https://scalamock.org/user-guide/matching/
问题内容: 我是一个完整的Java新手。我知道Java将所有参数都视为按值传递,并且还有其他几个线程可以解释这一点。 例如,在C ++中,我可以执行以下操作: 哪个将输出3。我知道在Java中,所有参数都是按值传递的,因此您无法操纵传入的参数。在Java中,有没有一种标准的方法来 模拟 按引用传递?有没有办法调用操作传入变量的函数?对于我来说,很难绕开没有办法做到这一点的想法。 问题答案: 模拟传
问题内容: 我想从Java方法返回对Scala对象的引用。我怎样才能做到这一点? 我的Scala对象是这样的: …并且我希望我的Java方法像这样: 有没有办法做到这一点? 问题答案: 应该管用。 编辑:之所以可行,是因为这是Scala表示单例对象的方式。该类中有一个名为的字段,其中填充有该类的单个有效实例。但是还有一个叫做的类,它将所有方法复制为静态方法。这样一来,您就可以在大多数情况下像Jav
问题内容: 我想模拟python中的按值传递行为。换句话说,我想绝对确保我编写的函数不会修改用户提供的数据。 一种可能的方法是使用深层复制: 有没有更有效或更 Python的 方法来实现此目标,对传递的对象进行尽可能少的假设(例如.clone()方法) 编辑 我知道技术上python中的所有内容都是按值传递的。我对 模拟 行为很感兴趣,即确保我不会弄乱传递给函数的数据。我猜最一般的方法是使用其自身
考虑以下代码: 它打印Why?Scala变量不是数组吗? 笔记 我在堆栈溢出上发现了几个关于斯卡拉变量的问题,但所有这些问题都是关于调用Java varargs方法或将Scala列表转换为数组的。
让我们考虑一个场景,我们必须运行“Create an account API”的性能测试,该API将输入作为头/路径参数“auth token”,并输入诸如用户帐户名之类的数据。因此对于上面的场景,我们有2个特性文件, 运行POST的性能测试http://baseurl/auth_param/create/input_data1。一个特性(例如:generateauth.feature)文件,它将
代码示例: 第二个问题--模拟scala对象,似乎需要使用其他方法来创建这样的服务。