我有一个具有获取和设置属性的模拟类。我的测试代码调用 setter 来分配连接字符串值。我的测试代码模拟了包含该属性的类,并在安排模拟时添加了 MustBeCalled。
视图模型代码:
public class ClientViewModel
{
private readonly IMgmtDataProvider dataProvider;
public ClientViewModel(IMgmtDataProvider dataProvider)
{
this.dataProvider = dataProvider;
}
private string clientConnectionString;
public string ClientConnectionString
{
get { return clientConnectionString; }
set
{
clientConnectionString = value;
if (dataProvider != null)
dataProvider.ClientConnectionString = value;
}
}
}
测试代码:
//Arrange
const string connectionString = "THIS IS MY CONNECTIONSTRING";
var mockedDataProvider = Mock.Create<IMgmtDataProvider>();
Mock.Arrange(() => mockedDataProvider.ClientConnectionString).MustBeCalled();
//Act
var testViewModel = new ClientViewModel(mockedDataProvider);
testViewModel.ClientConnectionString = connectionString;
//Assert
var callCount = Mock.GetTimesCalled(() => mockedDataProvider.ClientConnectinString);
Assert.IsTrue(callCount > 0);
我的 Mock.Arrange(...).MustBeCalled(); 似乎适用于 getter,而不是 setter。因此,当我调用 Mock.GetTimesCalled(...) 时,它返回 0。我需要将 MustBeCalled 应用于 setter 而不是 getter。我想确保在设置视图模型的连接字符串时设置数据提供者的连接字符串。我如何告诉 JustMock 跟踪模拟设置器被调用的次数?