如何使用 Get() 和 Set() 方法最小化 class
How to moq a class with Get() and Set() methods
我似乎无法最小化我的 class,它有 getter 和 setter 方法(不是属性)。我需要稍后将变量保存到 return 的某个地方。
我的签名class:
public interface IMyClass
{
int Get();
void Set(int i);
}
我的实际实现:
- Set() => 加密 int 并将其保存在局部变量中
- Get() => 从局部变量和 returns int
中解密 int
我希望最小起订量如何表现:
public class MyClassFake : IMyClass
{
private int _local;
public int Get()
{
return _local;
}
public void Set(int i)
{
_local = i;
}
}
到目前为止我尝试过但没有奏效的方法:
var mockMyClass = new Mock<IMyClass>();
var number = new int();
mockMyClass.Setup(x => x.Set(It.IsAny<int>())).Callback<int>(x=> number = x);
mockMyClass.Setup(x => x.Get()).Returns(number);
您必须更改 Get()
设置以使用接收 Func<>
作为参数的重载:
var mockMyClass = new Mock<IMyClass>();
var number = 0;
mockMyClass.Setup(x => x.Set(It.IsAny<int>())).Callback<int>(x => number = x);
mockMyClass.Setup(x => x.Get()).Returns(() => number);
在您当前的代码中,您将 Get()
结果定义为固定数字(number
的初始值)
我似乎无法最小化我的 class,它有 getter 和 setter 方法(不是属性)。我需要稍后将变量保存到 return 的某个地方。
我的签名class:
public interface IMyClass
{
int Get();
void Set(int i);
}
我的实际实现:
- Set() => 加密 int 并将其保存在局部变量中
- Get() => 从局部变量和 returns int 中解密 int
我希望最小起订量如何表现:
public class MyClassFake : IMyClass
{
private int _local;
public int Get()
{
return _local;
}
public void Set(int i)
{
_local = i;
}
}
到目前为止我尝试过但没有奏效的方法:
var mockMyClass = new Mock<IMyClass>();
var number = new int();
mockMyClass.Setup(x => x.Set(It.IsAny<int>())).Callback<int>(x=> number = x);
mockMyClass.Setup(x => x.Get()).Returns(number);
您必须更改 Get()
设置以使用接收 Func<>
作为参数的重载:
var mockMyClass = new Mock<IMyClass>();
var number = 0;
mockMyClass.Setup(x => x.Set(It.IsAny<int>())).Callback<int>(x => number = x);
mockMyClass.Setup(x => x.Get()).Returns(() => number);
在您当前的代码中,您将 Get()
结果定义为固定数字(number
的初始值)