1

注 > Country Table 中的记录数:36 条记录。

我的代码:

[TestFixture]
    public class CountriesControllerTest
    {
        Mock<IJN_CountryRepository> countryRepository;
        Mock<IUnitOfWork> unitOfWork;

        IJN_CountryService countryService;

        [SetUp]
        public void SetUp()
        {
            countryRepository = new Mock<IJN_CountryRepository>();
            unitOfWork = new Mock<IUnitOfWork>();
            countryService = new JN_CountryService(countryRepository.Object, unitOfWork.Object);
        }
        [Test]
        public void ManyDelete()
        {
            var count = countryService.GetCount();
            // Assert
            Assert.AreEqual(36, count);
        }
    }

NUnit 测试消息:

在此处输入图像描述

为什么?为什么不读取记录数?

4

1 回答 1

0

有了这两行

countryRepository = new Mock<IJN_CountryRepository>();
unitOfWork = new Mock<IUnitOfWork>();

您创建了一个对象,这些对象没有逻辑,也没有任何数据库知识。这些是嘲笑。你需要指导他们做什么才能让他们工作,比如:

var sampleCountries = Create36SampleCountries();
countryRepository = new Mock<IJN_CountryRepository>();
countryRepository.Setup(m => m.Countries).Returns(sampleCountries);

为了让您的测试与真实数据库一起使用,您不应该使用模拟,而是使用您的实际存储库(请注意,这将是一个集成测试)。

于 2014-09-11T06:57:21.547 回答