ShouldBe vs ShouldEqual中哪个比较比较两个异常对象

时间:2018-07-11 14:39:01

标签: scala exception scalatest assertion

我有一个代码,可以从将来返回异常对象

from functools import reduce  # for python3
cols = [c for c in df.columns if c != 'customer_id']
df = reduce(lambda df, c: df.withColumn(c, f.when(f.col(c) != '', f.col(c))), cols, df)
df = df.groupBy('customer_id').agg(*[f.first(c, True).alias(c) for c in cols])
df.na.fill('').show()  # fill nulls with blanks
#+-----------+--------------+-------------+----------------+---------------+
#|customer_id|init_base_date|init_end_date|reinit_base_date|reinit_end_date|
#+-----------+--------------+-------------+----------------+---------------+
#|          A|    2015-07-30|   2016-07-24|                |               |
#|          B|    2015-07-10|   2015-10-05|      2016-01-09|     2016-07-04|
#|          C|    2015-05-13|   2015-08-09|                |               |
#+-----------+--------------+-------------+----------------+---------------+

哪种是断言的最佳方法

实际应该等于预期 要么  实际应该是预期的

??

1 个答案:

答案 0 :(得分:0)

据我所知没有区别,但是在定义自己的shouldEqual特征实例时通常使用Equality。因此,由您决定选择哪种方法。

更新

但是您将无法比较异常,因为Java(和Scala)标准库中的异常don't override equals()。但是,如果您将自己的异常与重写方法equals()一起使用,则可以。