编写常见的测试代码
现在您有了一个基于字符串的 API,可以通过它进行基本的测试。
1、在公共的测试模块中创建一个 org.jetbrains.base64 包
2、在新包下面创建 Base64Test.kt文件
3、在文件中添加代码
bash
package org.jetbrains.base64
import com.example.myapplication.org.jetbrains.base64.Base64Factory
import kotlin.test.Test
import kotlin.test.assertEquals
class Base64Test {
@Test
fun testEncodeToString() {
checkEncodeToString("Kotlin is awesome", "S290bGluIGlzIGF3ZXNvbWU=")
}
@Test
fun testPaddedStrings() {
checkEncodeToString("", "")
checkEncodeToString("1", "MQ==")
checkEncodeToString("22", "MjI=")
checkEncodeToString("333", "MzMz")
checkEncodeToString("4444", "NDQ0NA==")
}
private fun checkEncodeToString(input: String, expectedOutput: String) {
println("checkEncodeToString:${input} ${Base64Factory.createEncoder().encodeToString(input.asciiToByteArray())}")
assertEquals(expectedOutput, Base64Factory.createEncoder().encodeToString(input.asciiToByteArray()))
}
private fun String.asciiToByteArray() = ByteArray(length) {
get(it).code.toByte()
}
}
4、打开终端命令,进入工程的根目录,执行checkGradle 任务:
bash
./gradlew check
测试将在所有平台(JVM、JS 和 Native)上运行。
添加在安卓平台的测试
1、到安卓公共模块测试目录添加 org.jetbrains.base64 包
2、在新包下面创建 Base64Test.kt文件
3、将测试代码添加到 文件中
bash
package org.jetbrains.base64
import kotlin.test.Test
import kotlin.test.assertEquals
class Base64JvmTest {
@Test
fun testNonAsciiString() {
val utf8String = "Gödel"
val actual = Base64Factory.createEncoder().encodeToString(utf8String.toByteArray())
assertEquals("R8O2ZGVs", actual)
}
}
添加iOS 平台测试
1、到iOS公共模块测试目录添加 org.jetbrains.base64 包
2、在新包下面创建 Base64Test.kt文件
3、将测试代码添加到 文件中
bash
package org.jetbrains.base64
import com.example.myapplication.org.jetbrains.base64.Base64Factory
import kotlin.test.Test
class Base64IOSTest {
@Test
fun testString() {
val utf8String = "Gödel"
val actual = Base64Factory.createEncoder().encodeToString(utf8String.encodeToByteArray())
println("actual: ${actual}")
assertEqualss("//+2ZGVs", actual)
}
private fun assertEqualss(expected: Any?, actual: Any?) {
if (expected != actual) {
throw AssertionError("Expected $expected, but got $actual")
}
}
}
注意如果想要在安卓和iOS平台都想添加测试模块,需要在配置文件中添加才可以使用。
bash
val androidUnitTest by getting {
dependencies {
implementation(kotlin("test"))
}
}
val iosTest by getting {
dependencies {
implementation(kotlin("test"))
}
}
这里有一个问题,同一个字符串,安卓base后和ios的出现不一致。