2016-04-27 6 views
4

ユニットテストケースを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であるはずの正しい方法を提案してください。前もって感謝します。

答えて

1

あなたは下記見ることができるように、彼らは両方のリテラル()

scala> import scala.reflect.runtime.universe._ 
import scala.reflect.runtime.universe._ 

scala> showRaw(reify(())) 
res0: String = Expr(Literal(Constant(()))) 

scala> showRaw(reify({})) 
res1: String = Expr(Literal(Constant(()))) 

Asを表す

override def sendNotification:Unit = {} 
override def sendNotification:Unit =() 

(空のタプル別名)空のブロックまたは単位()のリテラルシンボルを返すことができますしかし、Łukaszのコメントごとに違いがあります。()は、実際にシングルトンUnitタイプを表していますが、空のブロックは内部には()のみを含むブロック。

具体的には、コンパイラは、Unitと評価されるブロックの最後に自動的に()を配置します。

override def sendNotification:Unit = println("") 
+0

空のブロックが '()'を表しているとは限りませんが、実際は同じですが、概念的に '()'は 'Unit'型の唯一の値であり、コンパイラは自動的にブロックは 'Unit'と評価されるはずです。 'def a:ユニット= {println(1); 2 + 2} 'は' def a:Unit = {println(1);に変換されます。 2 + 2; ()} '私はOPのために '{}'と ''() 'を同等にする魔法がないことを明確にしたかっただけです。この特定のケースでこれを行う一般的なルールです。 –

+0

あなたは正しいです、私はしばらくのうちに私の答えを洗練します –

1

ユニットタイプのリテラル値である()を使用できます。

override def sendNotification: Unit =() 
関連する問題