Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何模拟可跟踪存储库?_C#_Unit Testing_Mocking - Fatal编程技术网

C# 如何模拟可跟踪存储库?

C# 如何模拟可跟踪存储库?,c#,unit-testing,mocking,C#,Unit Testing,Mocking,我第一次做单元测试。我想模拟一个可跟踪的存储库。它与模拟普通存储库不同吗?我对此表示怀疑,因为我正在创建一个简单的存储库,而我要测试的使用可跟踪存储库的方法不接受它。你能提供一个简单的例子来模拟一个可跟踪的存储库吗。 我使用DI传递存储库,如下所示: public CountryService(ITrackableRepository<Country> repository) : base(repository) { } 提前谢谢 [Test] public

我第一次做单元测试。我想模拟一个可跟踪的存储库。它与模拟普通存储库不同吗?我对此表示怀疑,因为我正在创建一个简单的存储库,而我要测试的使用可跟踪存储库的方法不接受它。你能提供一个简单的例子来模拟一个可跟踪的存储库吗。 我使用DI传递存储库,如下所示:

   public CountryService(ITrackableRepository<Country> repository) : base(repository)
    {
    }
提前谢谢

[Test]
public void YourTest()
{
    //Arrange
    var mockRepo = new Mock<ITrackableRepository<Country>>();
    var service = new CountryService(mockRepo.Object);
    var countryArray = new Country[]{};
    //Act
    service.UpdateCountry(countryArray);
    //Assert
    mockRepo.Verify(repo => repo.Insert(It.IsAny<Country>()), Time.Once);
}

希望它能给你一些见解

什么是可跟踪存储库?你是如何设置它的,但它不起作用?向我们展示你的代码和你想测试的内容
[Test]
public void YourTest()
{
    //Arrange
    var mockRepo = new Mock<ITrackableRepository<Country>>();
    var service = new CountryService(mockRepo.Object);
    var countryArray = new Country[]{};
    //Act
    service.UpdateCountry(countryArray);
    //Assert
    mockRepo.Verify(repo => repo.Insert(It.IsAny<Country>()), Time.Once);
}
mockRepo.Setup(repo => repo.PropertyName).Returns(//return something)