Spek - 测试中未初始化的变量



以下代码无法编译:

  describe("something") {
    context("when something") {
      var a: SomeType
      beforeEachTest { 
        a = someNewMutableObject
      }
      it("should do something") {
        assertTrue(a.something()) // variable a not initialized
      }
    }
  }

如何解决这个问题?我可以为变量分配什么以摆脱警告?

只需在使用前对将初始化的变量使用 lateinit 修饰符即可。

  describe("something") {
    context("when something") {
      lateinit var a: SomeType
      beforeEachTest { 
        a = someNewMutableObject
      }
      it("should do something") {
        assertTrue(a.something()) // variable a is okay to use here
      }
    }
  }

附言。 lateinit局部变量仅在 Kotlin 1.2 中可用

在 Kotlin 1.1 中,您应该将其初始化为默认值或 null(也使其成为可为空的类型(。

相关内容

  • 没有找到相关文章

最新更新