寝室的秘密授课(三):测试案例 Test Case

诗忆一走进学校的综合餐厅就看到唯心和另一个男生坐在中间的位置聊天,不由得加快脚步。

翟文志眼角余光注意到正在走近的诗忆,看了一眼唯心,唯心向他点点头,他就迅速提包起身离开。

看着擦身而过的人,诗忆还没将疑问说出口,唯心就主动和诗忆说明:「他就是我提过的情报通。」

「喔。」诗忆很快就把人忘在脑後,开始研究餐厅里提供的餐点。

在诗忆烦恼要选哪个餐点时,唯心指着右侧第一排的店家。「这家的韩式人参鸡腿饭还不错,你可以嚐嚐。」

诗忆将炖烂入味的鸡腿肉放进口里品嚐。『嗯,好吃,学姐和我的口味还满相似的』诗忆开心的这麽想着。

看着诗忆的反应,唯心淡淡地笑着,眼里有一丝寂寞。

回到寝室後,唯心接手电脑前问了一个问题。「你现在的IDE是深色主题,要不要和我一样把IDE换成浅色主题?」

诗忆其实不太懂深色浅色主题的差异,但是觉得和唯心一样应该不错,於是就点点头,放手让唯心进到IntelliJ IDEA里的Preferences更换主题颜色。

图1

图2

「我直接建立新档案再把测试案例和范例程序复制过来,你可以学着做,说不定以後你也会当上助教。」唯心说着把游标移动到test资料夹下的kotlin资料夹,建立一个新的名为四则运算测试的class档案,将测试案例复制进去;接着又把游标移动到main资料夹下的kotlin资料夹,建立一个新的名为四则运算的class档案,将范例程序复制进去。

图3

图4
图5
图6

「因为你还不会读程序码,所以我们先只看测试案例的部分。」唯心用触控板像操作网页一样放大程序码的字型。

import kotlin.test.Test
import kotlin.test.assertEquals
import kotlin.test.assertFailsWith

class 四则运算测试 {
    @Test
    fun 加法测试() {
        assertEquals(2, 学号().四则运算(1, '+', 1))
    }

    @Test
    fun 减法测试() {
        assertEquals(0, 学号().四则运算(1, '-', 1))
    }

    @Test
    fun 乘法测试() {
        assertEquals(1, 学号().四则运算(1, '*', 1))
    }

    @Test
    fun 除法测试() {
        assertEquals(1, 学号().四则运算(1, '/', 1))
        assertFailsWith<ArithmeticException> { 学号().四则运算(1, '/', 0) }
    }

    @Test
    fun 例外测试() {
        assertFailsWith<IllegalArgumentException> { 学号().四则运算(1, '?', 0) }
    }
}

「你先说说可以看得懂的部分。」唯心起身将座位还给原主人诗忆。

诗忆坐下瞪着程序码,她努力过,但还是理解失败,於是只能尴尬的说。「学姐,除了中文以外,我全部看不懂。英文单字虽然知道意思,但是不知道为什麽那样放。」

唯心顿了一下,但马上就用轻快的声音回应:「好吧,我说明一下。」她轻轻敲了下萤幕。「你可以看到程序码里面很多括号,对吧?先把括号想成一个箱子,现在有一个名为四则运算的箱子,把两个数字和加号依序丢进去摇一摇,就会掉出两个数字相加的结果;把减号丢进去就会掉出两个数字相减的结果,乘号和除号以此类推。」

怕诗忆不明白,唯心追加说明。「程序里的乘号是星号,除号是斜线。只有一开始会比较生疏,很快你就会习惯这些特殊符号。」她让诗忆触摸键盘上+-*/的位置,诗忆收回手之後,她才继续说下去。「而@Test下的都是测试用的程序码。加法测试的测试案例是计算1加1,标准答案是2。在负责验证工作的assertEquals箱子里依序把标准答案2,和范例程序计算的结果丢进去,如果两边一样就通过,不一样的话,就算失败。」游标接着被移动到有行数号码的灰色区块。「只想跑验证加法的话,点击加法测试左侧的三角形,如果点击四则运算测试左侧的三角形,会把五个测试案例全跑完。」

图7
图8


<<:  [Day 4] 三大法人资料(FinMind )

>>:  【Day7】使用Django 产生 excel报表

DAY4 [程序设计基本介绍]

第四天给大家科普一些基本知识。 程序(program)是一种指令集合可以让电脑完成你指定的工作,但必...

[Day 20] 针对网页的单元测试(六)

停用中介层 Laravel为了安全及其他因素, 预设载入了很多的中介层, 但是我们在测试的时候有时候...

26. Redux 的用途 & 入门实作 (下)

这篇来把上一篇跳过的action补上,然後会补充一点之前没讲过的super()和React Refs...

day3: 程序码的命名 (component, className)

在 react 的命名原则中,除了 component 和 type 是 Pascal Case,其...

结束了!!

我大学读树德资工系,但我大学快升大四时我才认真的学习。我那时主修网路,觉得喔~网路就这样而已,但是我...