我正在编写scala函数的单元测试,我将模拟的sparkDataframe传递给该函数,然后使用 assertSmallDataFrameEquality(actualDF, expectedDF)
函数来检查我的函数是否正确转换。
最近我遇到一个函数,它不带参数,返回列类型。现在因为它不期待任何争论。我应该如何为这个函数编写测试用例。我的职能如下。
def arriveDateMinusRuleDays: Column = {
expr(s"date_sub(${Columns.ARRIVE_DATE},${Columns.RULE_DAYS})")
}
测试蓝图写在下面
test("arrive date minus rule days") {
import spark.implicits._
val today = Date.valueOf(LocalDate.now)
val inputDF = Seq(
(Y, today, 0, 80852),
(S, today, 1, 18851))
.toDF(FLAG, ARRIVE_DT, RULE_DAYS,ITEM_NBR)
val actualOutput = DataAggJob.arriveDateMinusRuleDays() // How to pass my column values to this function
// val exepectedoutput
assertmethod(actualoutput, expectedoutput)
// print(actualOutput)
}
1条答案
按热度按时间oknwwptz1#
您不需要测试每个单独的函数。单元测试的目的是维护实现和下游使用者之间的契约,而不是实现细节。
如果您的作业在给定输入的情况下返回预期的输出,那么不管特定函数在做什么,它都能正常工作。应该保密以免混淆,