假设我们有一个类Employee,其中有一些私有数据成员和公共方法。我想创建一个Junit测试用例来测试方法是否被调用。
class Employee constructor(employeeName: String?){
private var isEligibleForPromotion = false
private var promotedPosition: PromotedPosition? = null
init {
try{
// checking If Employee is eligible for promotion
} catch() {}
}
fun givePromotion(employeeName: String?) {
if(isEligibleForPromotion) {
promotedPosition.promote(employeeName) //calls promote () in class PromotedPosition
}
}
}
现在,我想写一个测试用例来确保promotedPosition.promote()是否被调用。但是为了实现它,我需要模拟私有变量 isEligibleForPromotion,因为我需要测试它的true和false。
有谁能帮我个忙吗。
我试着嘲笑和监视类和私有变量isEligibleForPromotion。但是做不到。
1条答案
按热度按时间xj3cbfub1#
你的测试用例应该测试
Employee
类的行为,而不是它的内部,所以你应该模拟的是类与什么交互,而不是它的私有属性。简而言之,使用类的输入设置你的初始状态,并Assert你的类从外部的可观察行为。为了实现它,我需要模拟私有变量isEligibleForPromotion,
你不应该需要这个。首先是什么让这个变量成为true或false的呢?你应该从你的
Employee
类之外模拟这个东西,它让这个类把变量设置为true或false。