ユニットテストケースをMockitoSugarで記述しています。ユニットテストケースの作成中にユニットを返すメソッドをオーバーライドする
class EmployeeRepo {
def addEmplyees(emp:Employee): Long = {
//logic
val res1 = sendReport
val res2 = sendNotification
//logic
}
def sendReport:Boolean={
//logic
}
def sendNotification:Unit={
//logic
}
}
サンプルテストケース:上記のコード部分でここ
class TestEmployeeRepo extends WordSpec with MockitoSugar with ScalaFutures {
"TestEmployeeRepo" must {
"add employee" in {
//mock statements
val result = MockEmployeeRepo.addEmplyees(emp)
//assert statements
}
}
}
object MockEmployeeRepo extends EmployeeRepo {
override def sendReport:Boolean = true
override def sendNotification:Unit = //needs unit
}
私は必要なモックとaddEmployee
メソッドをテストしようとしています
は、ここに私のサンプルコードです。実際にUnit
を返すsendNotification
をオーバーライドしている間に、私はどのように返さなければならないのですか?Unit
私は、これらの二つの方法を試みた:微細加工
override def sendNotification:Unit = println("")
override def sendNotification:Unit = Unit
を、しかし私に従うことと何が//needs unit
であるはずの正しい方法を提案してください。前もって感謝します。
空のブロックが '()'を表しているとは限りませんが、実際は同じですが、概念的に '()'は 'Unit'型の唯一の値であり、コンパイラは自動的にブロックは 'Unit'と評価されるはずです。 'def a:ユニット= {println(1); 2 + 2} 'は' def a:Unit = {println(1);に変換されます。 2 + 2; ()} '私はOPのために '{}'と ''() 'を同等にする魔法がないことを明確にしたかっただけです。この特定のケースでこれを行う一般的なルールです。 –
あなたは正しいです、私はしばらくのうちに私の答えを洗練します –