C# 如何使用MOQ中另一类单元测试中的mock方法
我有两个问题:C# 如何使用MOQ中另一类单元测试中的mock方法,c#,unit-testing,mocking,moq,C#,Unit Testing,Mocking,Moq,我有两个问题: 无法模拟ClassStatic.Method(),因为它是静态的 如果我可以模拟ClassStatic,那么OnStep()方法如何调用被模拟的ClassStatic.method() 对不起我的英语 用于测试静态方法。但通常最好不要使用静态类和方法。像这样使用依赖项注入: class CurrentClass { public Task OnStep() { this.Property = ClassStatic.Method(); }
class CurrentClass
{
public Task OnStep()
{
this.Property = ClassStatic.Method();
}
}
类ClassStatic与类Current分开!!!我不允许编辑代码!!!我怎么办?我认为没有垫片是不可能的。
class MyClass
{
IUtility _util;
public MyClass(IUtility util)
{
_util = util;
}
public Task OnStep()
{
this.Property = _util.Method();
}
}
public TestMethod()
{
IUtility fakeUtil = Mock.Of<IUtility>();
MyClass x = new MyClass(fakeUtil);
}
using (ShimsContext.Create())
{
// Arrange:
// Shim ClassStatic.Method to return a fixed date:
Namespace.ShimClassStatic.Method =
() =>
{
// This will overwrite your static method
// Fake method here
};
// Instantiate the component under test:
var componentUnderTest = new MyComponent();
// Act:
// Assert:
}