私の既存のプロジェクトでは、xunit を使用しています。現在、サービス中の各インスタントをモックするのは非常にイライラします。そのため、AutoMock を使用することにしましたが、私のプロジェクトは非常に広大で、既に多くのコードを実行し、多くの値を割り当てています。これは、既存のモック オブジェクトを変更せずに AutoMock を使用できる方法ですか? 以下は私の既存のコードサンプルです。AutoFacを使用する予定です
現在、私がやっている値を設定したい場合
bordereauFormatsRepositoryMock
.Setup(x => x.GetBordereauFormats(It.IsAny<List<string>>()))
.Returns(botFormatsVMList);*
AutoMock で -
mock.Mock<IBordereauFormatsRepository>()
.Setup(x => x.GetBordereauFormats(It.IsAny<List<string>>()))
.Returns(botFormatsVMList)*;
では、どうすれば に割り当てることができbordereauFormatsRepositoryMock
ますmock.Mock<IBordereauFormatsRepository>()
か?
public BotMockTest()
{
#region Object initialization
botFormatsVMList = new List<BotFormatsVM>();
botFormatsVM = new BotFormatsVM();
botService = new BotService(bordereauFormatsRepositoryMock.Object, bordereauFormatColumnRepositoryMock.Object, contractRepository.Object, bordereauxRepositoryMock.Object, exceptionLogServiceMock.Object);
#endregion
}
[FactWithAutomaticDisplayName]
public void GetBordereauFormats()
{
//Arrange
List<string> sheetList = new List<string>() { { "sheet" } };
botFormatsVM.BordereauFormatId = Guid.Parse("847AE6BD-C20E-4377-8F56-36D58674C961");
botFormatsVMList.Add(botFormatsVM);
bordereauFormatsRepositoryMock.Setup(x => x.GetBordereauFormats(It.IsAny<List<string>>())).Returns(botFormatsVMList);
//Act
botService.GetBordereauFormats(sheetList);
//Assert
Assert.True(botFormatsVM.BordereauFormatName == "UpdatedVal");
}