Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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#_Database_Unit Testing - Fatal编程技术网

C# 使用数据库访问对控件进行单元测试

C# 使用数据库访问对控件进行单元测试,c#,database,unit-testing,C#,Database,Unit Testing,我已经进入开发阶段一段时间了,现在我的经理要求我做单元测试。代码有数据库连接、加载下拉列表、web服务等。我有如下方法 private void Load() { ddl.DataTextField = "a"; dd.DataValueField = "b"; ddl.DataSource = Utility.Getval(ddlCorp.SelectedItem.Text); ddl.DataBind();

我已经进入开发阶段一段时间了,现在我的经理要求我做单元测试。代码有数据库连接、加载下拉列表、web服务等。我有如下方法

private void Load()
    {
        ddl.DataTextField = "a";
        dd.DataValueField = "b";
        ddl.DataSource = Utility.Getval(ddlCorp.SelectedItem.Text);
        ddl.DataBind();

        ddl.Items.Insert(0, "--Select--");
        ddl.SelectedIndex = 0;
    }
我的测试方法如下所示

  public class UnitTest1
   {
      [TestMethod]
       public void TestMethod1()
       {
          var simpleTabControl = new SimpleTabControl();
          PrivateObject o = new PrivateObject(typeof(SimpleTabControl));
          b bool b = Convert.ToBoolean(o.Invoke("Load"));
      }

如何检查下拉列表的选定值,并检查其是否正确绑定。是否可以对此进行单元测试?当我调试时,ddl中会出现null异常。

单元测试不是事后可以做的事情。单元测试意味着您需要先编写一个单元,一个小型的、自包含的模块。如果控件访问数据库,那么它不是一个单元,而是一段具有外部依赖关系的代码。首先删除这些,可能使用模拟对象和依赖注入。然后使用它的公共接口对代码进行单元测试。不要测试私处。你不应该从外面知道他们。@nvoigt你确定吗?我知道你是从哪里来的,但是你的第一句话有点错了。单元测试就是简单的单元测试,您可以在开发之前、开发期间和开发之后自由地进行单元测试。我很确定您所指的是测试驱动开发(TDD),它是一种常见的和推荐的开发方法practice@Leo您完全可以在开发之后进行单元测试。如果你有神奇的天赋和发展的单位,尽管你不知道你会需要他们。我见过很多代码是有效的,不可单元测试的,因为人们从来没有想过。如何对在控件中打开数据库连接的内容进行单元测试?你不能。这需要非常沉重的负担。如果他是从依赖注入开始的,那么将他的数据源交换为mock.Ok将是轻而易举的事。我如何删除依赖关系,以及我应该在这里模拟什么。任何文章都会有帮助。我是单元测试新手,我需要一些指导来继续进行单元测试。您需要删除或替换任何影响单元测试以外部分的内容。您应该能够在没有任何依赖项的情况下运行单元测试。一个常见的模式用于执行此操作。你真的应该得到一本关于单元测试的好书或教程,解释它远远超出了这里的问答格式。