为了活动小家电-尝试编写测试代码(二)

107 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的32天,点击查看活动详情

为了活动小家电,接着上篇搞!

如何使用 JUnit

ExampleUnitTest查看文件,它看起来像这样:

class ExampleUnitTest {
    @Test
    fun addition_isCorrect() {
        assertEquals(4, 2 + 2)
    }
}

@Test有一种方法可以用 annotation测试加法操作。在这个方法中,看起来就像是assertEquals() 通过调用 的方法比较4 和 2 + 2assertEquals() ,我们来看看 的形状。

public static void assertEquals(long expected, long actual) {
    assertEquals(null, expected, actual);
}

expected``actual 它比较两个参数并检查它们是否具有相同的值。

断言的意思是“断言,断言”。在现实生活中,“断言”只是表达自己的观点,而不是争论什么是对或错。同理,在测试代码中,Assert执行一次,正常则通过,不正常AssertionError则抛出。

在我们之前看的基本示例代码中,我们比较了 '4' 和 '2 + 2' ,这两个值是一样的,所以单元测试通过了。

*那么如何运行这个测试呢?*

测试代码可以这样运行:如果右键单击测试文件,选择Run,您就可以运行它。编写单元测试代码对于添加、更改或重构代码是一个强大的优势,因为它允许您考虑各种测试用例(尽管它很麻烦)。与其他功能相比,测试代码的重要性增加了,尤其是在必须保证操作的完整性时。

尝试编写自己的单元测试代码

让我们根据真实案例进行练习。让我们创建一个简单的测试类,主要是验证加法和减法是否正常工作。

让我们创建一个这样的类:

class AddSub {

    fun add(a: Int, b: Int): Int {
        return a + b
    }
    
    fun sub(a: Int, b: Int): Int {
        return a - b
    }

}

并且在该文件之前的路径中,它会创建一个名为ExampleUnitTest功能验证测试的测试文件。AddSubTest

您可以编写如下代码:

import org.junit.Test
import org.junit.Assert.assertEquals
import org.junit.Before

class AddSubTest {
    private var addSub: AddSub? = null

    @Before
    fun setUp() {
        addSub = AddSub()
    }

    @Test
    fun addTest() {
        val result = addSub?.add(5, 6)
        assertEquals(11, result)
    }

    @Test
    fun subTest() {
        val result = addSub?.sub(10, 5)
        assertEquals(5, result)
    }

}

下面描述一些注释。

@Before

  • 测试开始前要执行的动作(对象初始化等)

@Test

  • @Before 之后运行的测试用例代码

尽管在上面的代码中没有多大意义,但可以通过这种方式考虑异常值,临界值情况。

import org.junit.Test
import org.junit.Assert.assertEquals
import org.junit.Before

class CalculatorTest {
    private var addSub: AddSub? = null

    @Before
    fun setUp() {
        addSub = AddSub()
    }

    @Test
    fun addTest1() {
        val result = addSub?.add(5, 6)
        assertEquals(11, result)
    }

    @Test
    fun addTest2() {
        val result = addSub?.add(-5, -4)
        assertEquals(-9, result)
    }

    @Test
    fun subTest1() {
        val result = addSub?.sub(10, 5)
        assertEquals(5, result)
    }

    @Test
    fun subTest2() {
        val result = addSub?.sub(-5, -4)
        assertEquals(-1, result)
    }

}