熟悉Kotlin我想介绍另一个Android-Java项目,作为测试的第一步。我决定直接开始Spek。
我将以下依赖项添加到要测试的模块的build.gradle中:
import pyodbc
con = pyodbc.connect('DRIVER={SQL Server};SERVER=gxn.database.windows.net;DATABASE=instantcopy;UID=testdb@gxn;PASSWORD=verysecret')
cur = con.cursor()
con.close()
其中我使用了git repo的SimpleTest类spek-samples:
testCompile 'junit:junit:4.12'
testCompile "org.jetbrains.kotlin:kotlin-stdlib:1.0.2"
testCompile "org.jetbrains.kotlin:kotlin-test-junit:1.0.2"
testCompile "org.jetbrains.spek:spek:1.0.25"
代码编译,在Android Studio中,我在类声明旁边显示了一个绿色播放按钮,用于运行类的测试。但是,这样做会导致
import org.jetbrains.spek.api.Spek
import kotlin.test.assertEquals
class SampleCalculator
{
fun sum(x: Int, y: Int) = x + y
fun subtract(x: Int, y: Int) = x - y
}
class SimpleTest : Spek({
describe("a calculator") {
val calculator = SampleCalculator()
it("should return the result of adding the first number to the second number") {
val sum = calculator.sum(2, 4)
assertEquals(6, sum)
}
it("should return the result of subtracting the second number from the first number") {
val subtract = calculator.subtract(4, 2)
assertEquals(2, subtract)
}
}
})
我创建了JUnit3和JUnit4测试,所有测试都没有任何问题。
我是否错过了Spek测试的任何其他配置步骤?
答案 0 :(得分:2)
我的失败是我没有完全/正确配置Kotlin。
我错过了使用Kotlin插件,这是用以下几行完成的:
apply plugin: 'kotlin-android'
buildscript {
ext.kotlin_version = '1.0.2'
repositories {
jcenter()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
如果你想在普通的JUnit测试中使用Kotlin代码,这也是一个要求。