c# - UnitTesting 非返回方法 c#

标签 c# unit-testing void

如何对这样的方法进行单元测试?当它是空的时候还有可能吗?

public static void CalcDeltaCO2 ()
    {
        double plantCO2usage = CalcPlantCO2Usage ();
        double airShiftsPerHour = 1 + instance._greenhouse.WindowRoof.GetStatus ();
        double co2AtStart = _simulatedChunks > 1 ? Toolbox.PPMtoM3perM3 (instance._currentCO2Sensor) : Toolbox.CO2_LEVEL_OUTSIDE;
        instance._deltaCO2 = Toolbox.M3perM3toPPM ((((instance._greenhouse.CO2Dispenser.GetFlow ()) - plantCO2usage
        / (airShiftsPerHour * instance._greenhouse.Volume))
        * (1.0 - (1.0 / Math.Pow (Math.E, (airShiftsPerHour * Toolbox.CHUNK_TIME_H)))) + (Toolbox.CO2_LEVEL_OUTSIDE - co2AtStart)
        * (1.0 / Math.Pow (Math.E, (airShiftsPerHour * Toolbox.CHUNK_TIME_H))) + co2AtStart)
        - Toolbox.PPMtoM3perM3 (instance._currentCO2Sensor));
    }

最佳答案

单元测试可以验证以下三件事之一:

  1. 方法返回一个值
  2. 方法改变状态
  3. 方法抛出异常

在您的情况下,您的方法通过执行一些计算来更改状态。在这种情况下,您可以做的是验证 instance._deltaCO2 是否具有预期值。

关于c# - UnitTesting 非返回方法 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23723289/

相关文章:

c++ - For 循环不在 void - fight 场景下运行

c# - 使用 DrawingContext 在 Canvas 上的元素上绘图

c# - 在 C# 中使用 FFTW 计算 HilbertTransform

c# - 从 RichEditBox 中删除图像

visual-studio - *.vsmdi 的用途是什么?我需要对其进行源代码控制吗?

c - 在 C 中返回一个 void 指针作为函数参数

c# - 如何更改只读变量的值?

unit-testing - SRP 使类(class)难以测试

C# 构造函数与初始化

c++ - 类型 'void* (...)(void*)' 的参数与 'void* (*)(void*) 不匹配