[英]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.