电梯调度部分函数单元测试

int TOW(int Foutside, int Fcurrent, int Fmax, int Fmin, int N, int state) //T1,T2作为常量

        {

            if (state == 0)//外信号与电梯运行方向相同,且在前方



                return System.Math.Abs(Foutside - Fcurrent) * T1 + N * T2;



            else if (state == 1)//外信号与电梯运行方向相同,且在后方



                return (System.Math.Abs(Fmax - Fcurrent) + System.Math.Abs(Fmax - Fmin) + System.Math.Abs(Fmin - Foutside)) * T1 + N * T2;



            else                //外信号与电梯运行反方向相反

                return (System.Math.Abs(Fmax - Fcurrent) + System.Math.Abs(Fmax - Foutside)) * T1 + N * T2;



        }

这是计算当前乘客等待时间的一个方法,Foutside表示外信号所在楼层,Fcurrent表示电梯当前所在楼层,Fmax为电梯运行方向的最远层,Fmin为电梯运行反方向的最远层。 N表示需要停留的楼层总数,t1为电梯运行一个楼层的时间,t2为电梯在一个楼层停留时间。

单元测试程序如下 

 public void TOWTest()

        {

            MyScheduler_Accessor target = new MyScheduler_Accessor(); // TODO: 初始化为适当的值

            int Foutside = 0; // TODO: 初始化为适当的值

            int Fcurrent = 0; // TODO: 初始化为适当的值

            int Fmax = 0; // TODO: 初始化为适当的值

            int Fmin = 0; // TODO: 初始化为适当的值

            int N = 0; // TODO: 初始化为适当的值

            int state = 0; // TODO: 初始化为适当的值

            int expected = 0; // TODO: 初始化为适当的值

            int actual;

            actual = target.TOW(Foutside, Fcurrent, Fmax, Fmin, N, state);

            Assert.AreEqual(expected, actual);

            Assert.IsTrue(actual==0);

        }

    }

}

结果为通过。
改为复杂一点的测试数据。

public void TOWTest()

        {

            MyScheduler_Accessor target = new MyScheduler_Accessor(); // TODO: 初始化为适当的值

            int Foutside = 15; // TODO: 初始化为适当的值

            int Fcurrent = 12; // TODO: 初始化为适当的值

            int Fmax = 16; // TODO: 初始化为适当的值

            int Fmin = 2; // TODO: 初始化为适当的值

            int N = 3; // TODO: 初始化为适当的值

            int state = 1; // TODO: 初始化为适当的值

            int expected = 0; // TODO: 初始化为适当的值

            int actual;

            actual = target.TOW(Foutside, Fcurrent, Fmax, Fmin, N, state);

            Assert.AreEqual(expected, actual);

            Assert.IsTrue(actual==170);

        }

测试结果为通过。

这是一个很简单的函数,但是从中可以看到单元测试的作用。

 

 

 

你可能感兴趣的:(单元测试)