Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Telerik中模拟内部类_C#_Asp.net Mvc_Telerik_Justmock - Fatal编程技术网

C# 如何在Telerik中模拟内部类

C# 如何在Telerik中模拟内部类,c#,asp.net-mvc,telerik,justmock,C#,Asp.net Mvc,Telerik,Justmock,您要做的是将属性添加到包含内部类的程序集。这一点在本文中进行了解释 之后,重新生成程序集,然后可以在测试程序集中使用内部类型,就像它们是公共类型一样。您要做的是将属性添加到包含内部类的程序集中。这一点在本文中进行了解释 之后,重新生成程序集,然后您可以在测试程序集中使用内部类型,就像它们是公共类型一样。您可以使用它们来伪造内部类型。 因此,在测试中,您将使用: [assembly: InternalsVisibleTo("TestAssembly")] [assembly: InternalsV

您要做的是将属性添加到包含内部类的程序集。这一点在本文中进行了解释

之后,重新生成程序集,然后可以在测试程序集中使用内部类型,就像它们是公共类型一样。

您要做的是将属性添加到包含内部类的程序集中。这一点在本文中进行了解释

之后,重新生成程序集,然后您可以在测试程序集中使用内部类型,就像它们是公共类型一样。

您可以使用它们来伪造内部类型。 因此,在测试中,您将使用:

[assembly: InternalsVisibleTo("TestAssembly")]
[assembly: InternalsVisibleTo("Telerik.JustMock, PublicKey=0024000004800000940000000602000000240000525341310004000001000100098b1434e598c6" +
"56b22eb59000b0bf73310cb8488a6b63db1d35457f2f939f927414921a769821f371c31a8c1d4b" +
"73f8e934e2a0769de4d874e0a517d3d7b9c36cd0ffcea2142f60974c6eb00801de4543ef7e93f7" +
"9687b040d967bb6bd55ca093711b013967a096d524a9cadf94e3b748ebdae7947ea6de6622eabf" +
"6548448e")]
从这一点出发,您可以使用
Isolate.NonPublic.WhenCalled
API来设置方法行为

并使用
Isolate.Invoke.Method
API调用相关方法。

可以用于伪造内部类型。 因此,在测试中,您将使用:

[assembly: InternalsVisibleTo("TestAssembly")]
[assembly: InternalsVisibleTo("Telerik.JustMock, PublicKey=0024000004800000940000000602000000240000525341310004000001000100098b1434e598c6" +
"56b22eb59000b0bf73310cb8488a6b63db1d35457f2f939f927414921a769821f371c31a8c1d4b" +
"73f8e934e2a0769de4d874e0a517d3d7b9c36cd0ffcea2142f60974c6eb00801de4543ef7e93f7" +
"9687b040d967bb6bd55ca093711b013967a096d524a9cadf94e3b748ebdae7947ea6de6622eabf" +
"6548448e")]
从这一点出发,您可以使用
Isolate.NonPublic.WhenCalled
API来设置方法行为


并使用
Isolate.Invoke.Method
API调用相关方法。

您不需要对内部类进行单元测试;只有公共API。如果您不能通过使用它的公共类正确测试
声明
,那么代码设计就有问题;只有公共API。如果您不能通过使用它的公共类正确地测试
Claim
,那么您的代码设计就有问题了。
var fakeInternal = Assembly.Load("ABC").GetType("ABC.Claim");
var fake = Isolate.NonPublic.Fake.Instance(fakeInternal);