2016-04-05 16 views
0

私は1日以上頭を打ちました。これについてインターネット上の何もない。私はスタブされた機能を持っています。それがrhinoモック内で呼び出されると、nullを返すだけですが、別の値を返すようにします。見てください:Rhinoモックスタブのみが返されます

[Test] 
public void GetViewingInfo_Throw_WhenViewingIDReturnsNull() 
{ 
    _managementDataController 
      .Stub(s => s.GetManagementByID(1)) 
      .Return(new Info(){ApprovedByEmployeeID = 123}); 

    Assert.Throws<InvalidOperationException>(() => 
      _managementBusinessController.GetViewingInfo(1)); 
} 

基本的に.Return(new Info(){ApprovedByEmployeeID = 123});は常にnullを返します。私は何か間違っているのですか?ここで

GetViewingInfoコードです:

var manage = _managementDataController.GetManagementByID(managementID); 
InvalidValueGuard.ThrowInvalidOperationExceptionOn(() => manage == null, ""); 

私はInvalidValueGuardにブレークポイントを入れて管理する変数は常にnullを返します。

+0

'GetManagementByID'は' GetViewingInfo'によって呼び出されますか?そのコードを表示できますか? – stuartd

+0

'GetManagementByID'は実際に' 1'の引数で呼び出されていますか?呼び出しが一致しない場合、デフォルト値が返されます。 – Lee

+0

投稿を編集しました – Luke101

答えて

0

具体的なクラスを作成してこの問題を修正しました。

Info info = new Info(); 

_managementDataController 
      .Stub(s => s.GetManagementByID(1)) 
      .Return(info); 

これがなぜ機能するのかわかりません。あなたが返却メソッドでクラスを送信するときにクロージャが機能しないと推測しています。

関連する問題