Как проверить функцию, которая возвращает набор данных [String, T] - PullRequest
0 голосов
/ 20 февраля 2020

привет, у меня есть следующая функция, возвращающая набор данных [(String, SubsidiariesImpactedStage)]:

def reduceSubsidiaries(dsSubsidiaries: Dataset[SubsidiariesImpactedStage]): Dataset[(String, SubsidiariesImpactedStage)] = {}

SubsidiariesImpactedStage является следующим

case class SubsidiariesImpactedStage(
  event_timestamp: Timestamp,
  event_type: String,
  subsidiary_uuid: String,
  subsidiary_id: Long,
  company_uuid: String
)

это мой следующий тест, который я написал

  val ts1 = Timestamp.valueOf("2019-08-01 00:00:00")
      val ts2 = Timestamp.valueOf("2019-09-20 00:00:00")
      val ts3 = Timestamp.valueOf("2019-11-27 00:00:00")
      val subsidiaries = Seq(
        SubsidiariesImpactedStage(ts1,"active","sub_uuid1",32L,"comp_uuid1"),
        SubsidiariesImpactedStage(ts2, "inactive","sub_uuid1",32L, "comp_uuid1"),
        SubsidiariesImpactedStage(ts3, "active", "sub_uuid1", 5L, "latest_comp_uuid1")
      ).toDS()

      val actual:Dataset[(String, SubsidiariesImpactedStage)] = reduceSubsidiaries(subsidiaries)
      val expected: Dataset[(String, SubsidiariesImpactedStage)] = Seq(
        SubsidiariesImpactedStage(ts3,"active","sub_uuid1", 5L, "latest_comp_uuid1")
      ).toDS()

Я получаю сообщение об ошибке на expected, потому что это Dataset[SubsidiaresImpactedStage], а не Dataset[(String, SubsidiariesImpactedStage)], как мне это исправить?

1 Ответ

0 голосов
/ 20 февраля 2020

Левая сторона последней команды определяет expected как кортежи Dataset[(String, SubsidiariesImpactedStage)].

Правая сторона назначает Dataset[SubsidiariesImpactedStage].

Попробуйте изменить правую сторону на

val expected: Dataset[(String, SubsidiariesImpactedStage)] = Seq(("myString",
  SubsidiariesImpactedStage("active","sub_uuid1", 5L, "latest_comp_uuid1")
  )
).toDS()

"myString" - это строка, которую вы считаете подходящей для вашего expected.

...