VS创建单元测试对自定义方法进行测试

本文介绍了如何在Visual Studio中为自己的代码创建单元测试,以`CompareCarNo`和`ConvertCarToIntNew`两个方法为例。首先,在控制台应用中添加代码,然后右键点击方法选择创建单元测试。测试框架会自动生成,通过添加断言和运行测试来验证方法的正确性。绿色对勾表示测试通过,红色叉表示失败。文章还提及了`Assert.AreEqual`断言的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文介绍在Visual Studio中对自己写的方法进行单元测试的方法
  1. 新建一个控制台应用,把需要单元测试的代码拷贝到应用中
    以下是我想要进行单元测试的两个方法,CompareCarNo 和ConvertCarToIntNew
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp4
{
   public class Program
    {
        static void Main(string[] args)
        {
        }
        public Boolean CompareCarNo(string carNo1, string carNo2)
        {
            if (carNo1.Equals(carNo2))
            {
                throw new Exception("carNo1 should be not equal carNo2");
            }
            //return String.Compare(carNo1, carNo2) >= 0;
            if (carNo1.Length != 7 || carNo2.Length != 7)
            {
                throw new Exception("the length of SerialNumber should be 7");
            }
            //获取月份和流水号
            string m1 = carNo1.Substring(1, 1);
            int month1 = 0;
            string sn1 = carNo1.Substring(2, 5);

            string m2 = carNo2.Substring(1, 1);
            int month2 = 0;
            string sn2 = carNo2.Substring(2, 5);
            switch (m1)
            {
                case "A":
                    month1 = 10;
                    break;
                case "B":
                    month1 = 11;
                    break;
                case "C":
                    month1 = 12;
                    break;
                default:
                    month1 = int.Parse(m1);
                    break;
            }
            switch (m2)
            {
                case "A":
                    month2 = 10;
                    break;
                case "B":
                    month2 = 11;
                    break;
                case "C":
                    month2 = 12;
                    break;
                default:
                    month2 = int.Parse(m2);
                    break;
            }
            var re = month1 - month2;
            if (re > 3)
            {
                return false;
            }
            else if (re > 0 && re <= 3)
            {
                return true;
            }
            else if (re == 0)
            {
                if (int.Parse(sn1) > int.Parse(sn2))
                {
                    return true;
                }
                if (int.Parse(sn1) < int.Parse(sn2))
                {
                    return false;
                }
                if (sn1.Equals(sn2))
                {
                    throw new Exception("Internal error:sn1=sn2");
                }
            }
            else if (re >= -3 && re < 0)
            {
                return false;
            }
            else if (re < -3)
            {
                return true;
            }
            throw new Exception("Internal error");
        }

        public int ConvertCarToIntNew(string car)
        {
            if (car == null)
            {
                throw new Exception("车身码为空");
            }
            else
            {
                string a = car.Substring(1, 1);
                string month;
                switch (a)
                {

                    case "A":
                        month = "10";
                        break;
                    case "B":
                        month = "11";
                        break;
                    case "C":
                        month = "12";
                        break;
                    default:
                        month = "0" + a;
                        break;
                }
                return Convert.ToInt32(car.Substring(0, 1) + month + car.Substring(2));
            }
        }
    }
}

  1. 在需要单元测试的方法上右键单击,选择Creat Unit Test
    在这里插入图片描述

  2. 弹出创建单元测试向导,如无必要直接完成即可
    在这里插入图片描述

  3. 完成之后自动创建测试框架
    自己添加测试逻辑
    在这里插入图片描述

  4. 选中要测试的方法右键,Run Test(s)
    在这里插入图片描述

  5. 测试结果将在左边栏或者下面显示
    绿色对勾即表示测试通过,红色叉测试不通过
    在这里插入图片描述
    在这里插入图片描述

  6. 如上图还可以添加其他想要测试的方法(ConvertToIntNewTest)

断言介绍

单元测试少不了断言(Assert),本文只使用了以下断言
Assert.AreEqual验证指定的两个对象是否相等。 如果两个对象不相等,则断言失败。
其他情景可以自行查找

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BillDev

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值