![](/img/trans.png)
[英]Partial mock methods in a class using Autofixture, Moq and XUnit
[英]How to Mock NamespaceManager Class Methods Using Moq?
我想模拟CreateTopicAsync方法。 但是由于班级的封闭性,我无法模拟班级。 有谁知道?
您不能嘲笑sealed
类。 模拟依赖于继承来构建数据的实时副本。 因此,尝试模拟sealed
类是不可能的。
您可以做的是编写一个包装器:
public class NamespaceManagerWrapper : INamespaceManagerWrapper
{
private NamespaceManager _instance;
public NamespaceManagerWrapper(NamespaceManager instance)
{
_instance = instance;
}
public ConsumerGroupDescription CreateConsumerGroup(ConsumerGroupDescription description)
{
return _instace.CreateConsumerGroup(description);
}
etc....
}
模拟界面
public interface INamespaceManagerWrapper
{
ConsumerGroupDescription CreateConsumerGroup(ConsumerGroupDescription description);
....etc.
}
您的方法现在应该在原始对象上接受包装器接口:
public void myMethod(INamespaceManagerWrapper mockableObj)
{
...
mockableObj.CreateConsumerGroup(description);
...
}
现在您可以模拟界面:
Mock<INamespaceManagerWrapper> namespaceManager = new Mock<INamespaceManagerWrapper>();
....etc.
myObj.myMethod(namespaceManager.Object);
不幸的是,这是您可以做的最好的事情。 这是HttpContextWrapper的辅助实现
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.