如何测试对象初始化的约束?

时间:2018-01-04 16:48:52

标签: android unit-testing kotlin

我正在为Android编写应用程序,我想开始为我正在编写的类编写测试。我是编写测试用例的新手。

现在要创建测试,我使用IntelliJ并使用它的向导进行新的JUnit4测试。该向导允许我从我的班级中选择要测试的方法。

但对于我正在测试的对象,我不希望将负数传递给构造函数。

class MinuteTime(private val minutes : Int) {
init {
    if (minutes < 0) {
        throw IllegalArgumentException("Cannot be less than 0.")
    }
}
...

在我的Test类中哪里是测试这些约束的最佳位置?我知道要测试约束,我只需要确保异常被抛出并捕获,但我不确定是否应该为此创建一个新方法,或者只是将它楔入为我预先制作的IntelliJ函数之一。这是生成的测试类:

class MinuteTimeTest {
    @Test
    fun getTimeInMinutes() {

    }

    @Test
    fun getHours() {

    }

    @Test
    fun getMinutes() {

    }

    @Test
    fun plus() {

    }
}

1 个答案:

答案 0 :(得分:1)

我绝对建议将其包装成单独的测试方法。它的关注点只是在初始化期间测试验证:

@Test
fun negativeNumberConstructorTest() {
    assertFailsWith(IllegalArgumentException::class){
        MinuteTime(-1)
    }
}

它在JUnit

之上使用kotlintest