簡體   English   中英

具有內部構造函數的Moq混凝土類

[英]Moq Concrete Class with Internal Constructor

我正在嘗試Moq具有內部構造函數的具體類,即在MyAssembly

public class MyClass {

    internal MyClass(){}

    // other methods including factory instance method
}

然后在“ TestAssembly”的測試中

var mock = new Mock<MyClass>();

MyAssembly我已將以下內容添加到AssemblyInfo.cs

[assembly: InternalsVisibleTo("TestAssembly")]

但是即使將TestAssembly設置為MyAssembly的朋友,Moq仍然會拋出錯誤

Castle.DynamicProxy.InvalidProxyConstructorArgumentsException
Can not instantiate proxy of class: Civica.Metadata.Models.Entities.Stage.
Could not find a parameterless constructor.

Moq是否應該能夠以這種方式使用內部構造函數創建模擬?

請參閱Moq快速入門的“ 高級功能”部分

模擬另一個項目的內部類型:將以下程序集屬性(通常添加到AssemblyInfo.cs中)添加到包含內部類型的項目中:

// This assembly is the default dynamic assembly generated Castle DynamicProxy, 
// used by Moq. Paste in a single line. 
[assembly:InternalsVisibleTo("DynamicProxyGenAssembly2,PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM