首页 > 解决方案 > 我是否必须为 PostgreSQL 测试设置最小起订量数据库和输入设置?

问题描述

我尝试测试 PostgreSQL [PostgreSQL 工作正常吗?]。当我们必须进行单元测试时,我已经阅读了一些关于 Moq 的信息。所以我有3个问题。

1 当我们做Arrange [AAA 模式] 在测试SQL 执行之前我们是否必须moq 配置数据库和输入?

2 基于第一个问题。如果起订量需要,那么如果我像这样正常设置有什么不同

            DumpDatabase databaseSetting = new DumpDatabase();
            databaseSetting.Host = "***.***.*.*.*";
            databaseSetting.Port = "****";
            databaseSetting.Database = "*****";
            databaseSetting.UserName = "****";
            databaseSetting.Password = **********";

代替

   var mockdb = new Mock<DumpDatabase>();
            mockdb.Setup(x => x.dumpDatabase).Returns(
                new DumpDatabase()
                {
                    Host = "***.***.*.*.*",
                    Port = "****",
                    Database = "*******",
                    UserName = "*****",
                    Password = "***********"
                }
                );

3 如果查询已通过,我必须在每个测试中回滚原始文件对吗?

例如


  string query = "INSERT INTO pictures (id, created, width, height, device_id, user_id, modified, checksum, file_path, file_extension, file_size, mime_type, thumbnail, title, classification, description)" +
                                                                 " VALUES (@p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11, @p12::mime, @p13, @p14, @p15::classification, @p16); ";

然后我需要通过执行此操作回滚原始 After Assert [AAA 模式]

string sqlDelete = "DELETE FROM public.pictures WHERE id = @p1;";

标签: c#postgresqlnunitmoq

解决方案


推荐阅读