2009-10-08 14 views
5

Moqライブラリを使用してプロジェクト内でEnumをモックする際に問題が発生しています。私はクラスをテストしようとしており、メソッドの1つがENumを受け取ります。これを行う方法はありますか?ここでENUMライブラリを使用してENUMをモックする方法

は、私はモックにしようとしている列挙型である:ここでは

public enum PermissionType 
{ 
    Create = 0, 
    Read = 1, 
    Update = 2, 
    Delete = 3, 
} 

は、私はモックを作成するために使用しようとしていますコードです:

private static Mock<PermissionService> GetMockPermissionService(bool hasPermissions) 
{ 
    var mockPermissionService = new Mock<PermissionService>(); 

    mockPermissionService.Setup(x => x.HasPermission(It.IsAny<string>(), 
         **It.IsAny<PermissionType>()**)).Returns(hasPermissions); 

    return mockPermissionService; 
} 

これは私が受け取るエラーです:

System.ArgumentException:無効なメンバーで無効な セットアップ:x => x.HasPermisシオン(It.IsAny()、It.IsAnyは())

私も試してみました:

は、任意の助けをいただければ幸いです

mockPermissionService.Setup(x => x.HasPermission(It.IsAny<string>(), 
          **It.IsAny<int>()**)).Returns(hasPermissions); 

mockPermissionService.Setup(x => x.HasPermission(It.IsAny<string>(), 
          **PermissionType.Read**)).Returns(hasPermissions); 
...

答えて

3

このエラーは、あなたのHasPermissionことを意味しますPermissionServiceのメソッドはバーチャルでなければなりません。

+0

ありがとうございます。 ENUMはちょうどレッドニシンだった – Pat

関連する問題