Moq 混凝土 Class 与内部构造函数
Moq Concrete Class with Internal Constructor
我正在尝试 Moq 具有内部构造函数的具体 class,即在 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 是否应该能够以这种方式使用内部构造函数创建模拟?
参见Advanced Features section of the Moq Quickstart。
Mocking internal types of another project: add the following assembly
attribute (typically to the AssemblyInfo.cs) to the project containing
the internal types:
// This assembly is the default dynamic assembly generated Castle DynamicProxy,
// used by Moq. Paste in a single line.
[assembly:InternalsVisibleTo("DynamicProxyGenAssembly2,PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")]
我正在尝试 Moq 具有内部构造函数的具体 class,即在 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 是否应该能够以这种方式使用内部构造函数创建模拟?
参见Advanced Features section of the Moq Quickstart。
Mocking internal types of another project: add the following assembly attribute (typically to the AssemblyInfo.cs) to the project containing the internal types:
// This assembly is the default dynamic assembly generated Castle DynamicProxy,
// used by Moq. Paste in a single line.
[assembly:InternalsVisibleTo("DynamicProxyGenAssembly2,PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")]