You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Scala单个测试用例中同时测试输出Map与List的方法

合并Scala测试用例的实现方案

直接将两个测试方法的逻辑整合到同一个test块中即可,一次性执行两个方法的测试。以下是修改后的代码:

test("test map and list methods together") {
  // 测试输出Map类型的方法
  val mapTestCases: Map[String, Map[String, Int]] = Map(
    "Andorra" -> Map("la massana" -> 7211)
  )
  for ((input, expectedOutput) <- mapTestCases) {
    val computedOutput: mutable.Map[String, Int] = PaleBlueDot.cityPopulations(countriesFile, citiesFilename, input, "04")
    assert(computedOutput == expectedOutput, s"Map方法测试失败:$input -> 实际输出:$computedOutput")
  }

  // 测试输出List类型的方法
  val listTestCases: Map[String, List[String]] = Map(
    "Andorra" -> List("les escaldes")
  )
  for ((input, expectedOutput) <- listTestCases) {
    val computedOutput: List[String] = PaleBlueDot.aboveAverageCities(countriesFile, citiesFilename, input)
    assert(computedOutput.sorted == expectedOutput.sorted, s"List方法测试失败:$input -> 实际输出:$computedOutput")
  }
}

关键说明

  • 给合并后的测试单元起一个清晰的名称,便于识别测试范围
  • 保留两个方法各自的测试用例和断言逻辑,仅将它们放在同一个test块内执行
  • 优化断言的错误提示,失败时能快速定位是哪个方法出了问题
  • 将原代码中的var替换为val,符合Scala不可变变量的最佳实践

内容的提问来源于stack exchange,提问作者siraat mustafa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 12:50:29