我正在尝试测试我的代码,但我对 set 方法的测试不起作用

时间:2021-01-19 04:33:37

标签: c#

类方法:

    public decimal GetVehicleSalePrice()
    {
        return this.vehicleSalePrice;
    }

    public void SetVehicleSalePrice(decimal vehicleSalePrice)
    {
        this.vehicleSalePrice = vehicleSalePrice;
    }

测试:

    static void Main(string[] args)
    {
      SalesQuote quote = new SalesQuote(5000.00m, 500.75m, .3m, Accessories.LeatherInterior, ExteriorFinish.Custom);
TestGetVehicleSalesPrice(quote, 5000.00m);
    }

    private static void TestGetVehicleSalesPrice(SalesQuote quote, decimal expected)
    {
        Console.WriteLine("Test 1");
        Console.WriteLine("Testing method GetVehicleSalesPrice()");
        Console.WriteLine("Expected: " + expected);
        Console.WriteLine("Actual: " + quote.GetVehicleSalePrice());
        Console.WriteLine();
    }

    //Testing method SetVehiclePrice()
    private static void TestSetVehiclePrice(SalesQuote quote, decimal expected)
    {
        Console.WriteLine("Test 2");
        Console.WriteLine("Testing method SetVehicleSalesPrice(decimal)");
        Console.WriteLine("Expected: " + expected);
        Console.WriteLine("S"  SetVehicleSalePrice(1000.00m));
        Console.WriteLine();
    }

我对 get 方法的测试工作正常,但 set 方法测试工作不正常。我不确定,我如何测试 set 方法,请帮我解决这个问题,提前致谢。

3 个答案:

答案 0 :(得分:0)

我认为您需要在设置销售价格后添加以下内容:

Console.WriteLine("Actual: " + quote.GetVehicleSalePrice());

出于您的目的,您打印的是预期的,而不是打印实际的以进行比较。然而,这并不是一个很好的测试用例。相反,您应该考虑研究和实施单元测试。

答案 1 :(得分:0)

SetVehicleSalePrice 是一个 void 方法,但您希望它输出值作为其设置值。如果这是您打算执行的操作,请将方法的返回类型更改为十进制并返回新值。

public decimal SetVehicleSalePrice(decimal vehicleSalePrice)
    {
        this.vehicleSalePrice = vehicleSalePrice;
        return this.vehicleSalePrice;
    }

答案 2 :(得分:0)

Console.WriteLine("S"  SetVehicleSalePrice(1000.00m));

您上面的代码行必须引发编译错误。假设您在 SalesQuote 类中有 SetVehicleSalePrice 方法,您可以尝试以下代码。

quote.SetVehicleSalePrice(1000.00m);
Console.WriteLine("After calling set :" + quote.GetVehicleSalePrice());