代码之家  ›  专栏  ›  技术社区  ›  Schotime

如何对创建新流程的代码进行单元测试?

  •  5
  • Schotime  · 技术社区  · 17 年前

    Process ProcessWrapper 类是这个接口的具体实现。

        public void Initiate(IEnumerable<Cow> cows)
        {
            foreach (Cow c in cows)
            {
                c.Process = new ProcessWrapper(c);
                c.Process.Start();
                count++;
            }
        }
    
    3 回复  |  直到 17 年前
        1
  •  3
  •   Brian Rasmussen    17 年前

    Initiate() ProcessWrapper 你需要参加考试。

    另一种解决方案是使用TypeMock等模拟框架,这将使您能够解决这个问题。TypeMock基本上允许您模拟任何东西,因此您可以使用它来提供模拟对象,而不是实际的ProcessWrapper实例。

        2
  •  0
  •   Andy White    17 年前

    我不熟悉C#(我更喜欢没有哈希的C#),但你需要某种进程接口(IPC或任何最方便的方法),这样你就可以向它发送测试请求并获得结果。在最简单的层面上,您只需向流程发送一条消息并接收结果。或者,您可以拥有更精细的粒度,并从测试工具中发送更具体的命令。这取决于您如何设置单元测试环境,更确切地说,取决于您发送测试命令的方式、接收命令的方式以及报告结果的方式。

    我个人会在流程中有一个测试对象,它只是接收、运行和处理数据;报告单元测试结果,并在该对象中包含测试代码。

        3
  •  0
  •   Makis    17 年前

    从TDD的角度来看,插入一个“模拟/测试过程”来执行一些您可以轻松检查的操作可能是有意义的。(这可能需要更改代码以允许您的测试代码注入某些内容。)这样,您只测试了调用代码,而不一定测试实际的业务流程。然后,您可以进行不同的单元测试来测试您的业务流程。

    推荐文章