携手创作,共同成长!这是我参与「掘金日新计划 · 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)
}
}