单元测试
发布日期:2021-06-30 17:24:36 浏览次数:3 分类:技术文章

本文共 2286 字,大约阅读时间需要 7 分钟。

某从未搞过单元测试,觉得好神秘!

但测试驱动,如雷贯耳,所谓未写代码,先写测试;博客园又有大神说,所谓的需求分析,应当具体化为测试用例。。。反正,单元测试就是好重要!

所以一直都想搞一搞。但网上的文章我看不大明白,这两天抓住难得的机会摸索了一下,好像有点眉目了。先记录一下,日后在此基础上再出发。

什么是单元测试?我感觉单元测试就是自动化测试。写一些相关的方法,来调用我们需要测试的方法,跑一遍。测试项目为此提供了便利。

比方说,我想对业务逻辑层的一些方法进行单元测试。首先在VS中右击该方法,选单元测试,建立单元测试项目。系统自动搭建了框架,完成了许多支撑代码。

不过,如何调用目标方法来进行测试,还需要我们自己完成。同时,令我诧异的是,调用目标方法所需要的一些动态库,也要我们自己手动添加!

单元测试的主要方法是Assert(断言)。比如,Assert.AreEqual(期望值,实际运行值)。如果两个值相符,则显示测试通过;否则红灯。

单元测试可以选定进行测试,也可以全部跑一遍。

还可以调试!方法是选VS菜单栏中的 测试 - 调试,方便得很。

有代码有机八:

namespace Services.User.Tests{    [TestClass()]    public class UserHomeMadeServiceTests    {        readonly string connString = "。。。。。";        ISessionFactory sessionFactory;        ISession session;        IUserHomeMadeService service;        [TestInitialize()]//测试环境初始化        public void Init()        {            sessionFactory = Fluently.Configure()                .Database(FluentNHibernate.Cfg.Db.OracleClientConfiguration.Oracle10.                    ConnectionString(connString).ShowSql())                .ExposeConfiguration(f => f.SetInterceptor(new SqlStatementInterceptor()))                .Mappings(m => m.FluentMappings.AddFromAssembly(Assembly.Load("这是一个数据库持久层代码文件名称")))                .BuildSessionFactory();            session = sessionFactory.OpenSession();            service = new UserHomeMadeService(new UserHomeMadeRepository(session));        }        [TestCleanup()]//测试完毕大扫除        public void Cleanup()        {            session.Disconnect();            session.Dispose();        }        [TestMethod()]//测试方法        public void SetModelTest()        {            ITransaction transaction = session.BeginTransaction(IsolationLevel.ReadCommitted);            UserHomeMade hm = new UserHomeMade();            hm.USER_ID = 1;            hm.HOME_MADE = System.Text.Encoding.GetEncoding("GB2312").GetBytes("大便干小便黄");            hm.CREATE_DATE = DateTime.Now;            hm.EDIT_DATE = DateTime.Now;            Assert.AreEqual(true, service.SetModel(hm));            transaction.Rollback();        }        [TestMethod()]        public void GetModelTest()        {            UserHomeMade hm = service.GetModel(1);            string homemade = System.Text.Encoding.GetEncoding("GB2312").GetString(hm.HOME_MADE);            Assert.AreEqual("大便干小便黄", homemade);        }    }}

这里写图片描述

转载地址:https://leftfist.blog.csdn.net/article/details/50059969 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:sql里的in对应linq的写法 及 IQueryable转化为Dictionary
下一篇:WEB服务器安装oracle jdbc

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月20日 18时47分48秒