我正在学习scala,并希望用===
编写测试。但是,我很好奇是否有办法做这样的事情:
assert(1 !=== 2)
我已尝试过上述内容!==
和!(===)
有没有办法获得===
的描述性并使用否定?
答案 0 :(得分:3)
ScalaTest没有!==
方法(它实际上在源代码中,并且是commented out)。您可以实现自己的模拟,例如:
// Somewhere in the codebase
class ExtendedEqualizer(left: Any) {
def !==(right: Any) = {
if (left != right) None
else Some("%s equaled to %s".format(left, right))
}
}
object TestUtil {
implicit def convertToExtendedEqualizer(left: Any) = new ExtendedEqualizer(left)
}
// In your test class
import TestUtil.convertToExtendedEqualizer
然后它变得像===
一样简单:
assert(3 !== 2+2)
请注意,这是===
的简化版本,它不进行深层数组比较,也不会像ScalaTest那样生成很好的差异。