Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.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#_Unit Testing_Void - Fatal编程技术网

单元测试不返回方法c#

单元测试不返回方法c#,c#,unit-testing,void,C#,Unit Testing,Void,如何进行单元测试这样的方法?当它是一个空的时候,它可能吗 public static void CalcDeltaCO2 () { double plantCO2usage = CalcPlantCO2Usage (); double airShiftsPerHour = 1 + instance._greenhouse.WindowRoof.GetStatus (); double co2AtStart = _simulatedChunk

如何进行单元测试这样的方法?当它是一个空的时候,它可能吗

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));
    }

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

  • 方法返回一个值
  • 方法更改状态
  • 方法引发了异常

  • 在您的情况下,您的方法通过执行一些计算来更改状态。在这种情况下,您可以做的是验证
    实例.\u deltaCO2
    是否为预期值。

    一个
    void
    方法通常会影响应用程序的状态(又称:某个变量在某处发生更改)。在您的情况下,您似乎正在更改
    实例。_deltaCO2
    因此模拟/存根该实例,并根据其验证更改。+1用于此特定测试。单元测试可以验证的其他事情是(对象或应用程序的)行为是否受到调用的正确影响。NUnit还可以验证调用方法a)不会引发任何异常,b)在指定时间内返回。