1.选择开发工具

1.1由于Visual stdio 已经安装,所以运行界面如下图所示:

基于VS快速排序的单元测试 随笔 第1张

2.进行单元测试

2.1用Visual stdio 2017创建一个新项目(快速排序)如下图所示:

基于VS快速排序的单元测试 随笔 第2张
其中程序如下所示:

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
#include<stdio.h>

void swap(int &a, int &b)
{
    int t = a;
    a = b;
    b = t;
}

void quick(int *a, int s, int t)
{
    int i = s, j = t + 1;
    do
    {
        do i++; while (a[i] > a[s]);
        do j--; while (a[j] < a[s]);
        if (i < j) 
            swap(a[i], a[j]);
    } while (i < j);
    swap(a[s], a[j]);
    if (s < j - 1)
        quick(a, s, j - 1);
    if (j + 1 < t)
        quick(a, j + 1, t);
}

void print(int *a, int n)
{
    int i;
    for (i = 0; i < n; i++)
        printf("%d ", a[i]);
    printf("\n");
}
int main()
{
    int a[1800], i;
    for (i = 0; i < 1800; i++)
        a[i] = 2300 + i;
    quick(a, 0, 1799);
    print(a, 10);
    return 0;
}

2.2快速排序的结果如图所示:

基于VS快速排序的单元测试 随笔 第3张

2.3对代码添加一个单元测试:

基于VS快速排序的单元测试 随笔 第4张
单元测试核心代码如下所示:

        TEST_CLASS(UnitTest1)
    {
        public:
        
        TEST_METHOD(TestMethod1)
        {
            int res[10] = { 4,3,2,1,0,-1,-2,-3,-4,-5 };
            int test[10] = { 1,2,3,4,0,-1,-2,-3,-4,-5 };
            quick(test, 0, 9);
            for (int i = 0; i < 10; i++)
            {
                Assert::AreEqual(test[i], res[i]);
            }
        }

        TEST_METHOD(TestMethod2)
        {
            int res[10] = { -1,-1,-1,-1,-1,-1,-1,-1,-1,-1 };
            int test[10] = { -1,-1,-1,-1,-1,-1,-1,-1,-1,-1 };
            quick(test, 0, 9);
            for (int i = 0; i < 10; i++)
            {
                Assert::AreEqual(test[i], res[i]);
            }
        }

    };

2.4从文件中找到依赖项地址:

基于VS快速排序的单元测试 随笔 第5张

3.最后结果分析

3.1所得结果测试完全通过,并且截图如下:

基于VS快速排序的单元测试 随笔 第6张

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄