• Asp.Net MVC3中如何进行单元测试?


    下面我们就以一个示例演示一下如何进行单元测试?

          public Model.UserInfo UpdateEntity(Model.UserInfo entity)
            {
                db.UserInfo.Attach(entity);
                db.ObjectStateManager.ChangeObjectState(entity, EntityState.Modified);
                return entity;
            }


    针对以上方法我们做一个单元测试:

     1.鼠标放在方法名上,右键选择创建单元测试如图:

      弹出窗口,我们会看到勾选的复选框就是我们所要进行测试的方法:

      

      直接点击确定就会在解决方案中为我们自动生成一个测试的项目,UnitTest文件夹是本人自己加的,可能还没有App.Config,我们只需要把实体模型中的App.Config文件拷贝到测                  试项目中就OK: 

    2.具体实现测试的代码如下:

    using System.Linq;
    using Acmeway.DAL;
    using Microsoft.VisualStudio.TestTools.UnitTesting;
    using System;
    using Acmeway.Model;
    
    namespace Acmeway.UnitTest
    {
        /// <summary>
        ///这是 UserInfoRepositoryTest 的测试类,旨在
        ///包含所有 UserInfoRepositoryTest 单元测试
        ///</summary>
        [TestClass()]
        public class UserInfoRepositoryTest
        {
    
    
            private TestContext testContextInstance;
    
            /// <summary>
            ///获取或设置测试上下文,上下文提供
            ///有关当前测试运行及其功能的信息。
            ///</summary>
            public TestContext TestContext
            {
                get
                {
                    return testContextInstance;
                }
                set
                {
                    testContextInstance = value;
                }
            }
    
            #region 附加测试特性
            // 
            //编写测试时,还可使用以下特性:
            //
            //使用 ClassInitialize 在运行类中的第一个测试前先运行代码
            //[ClassInitialize()]
            //public static void MyClassInitialize(TestContext testContext)
            //{
            //}
            //
            //使用 ClassCleanup 在运行完类中的所有测试后再运行代码
            //[ClassCleanup()]
            //public static void MyClassCleanup()
            //{
            //}
            //
            //使用 TestInitialize 在运行每个测试前先运行代码
            //[TestInitialize()]
            //public void MyTestInitialize()
            //{
            //}
            //
            //使用 TestCleanup 在运行完每个测试后运行代码
            //[TestCleanup()]
            //public void MyTestCleanup()
            //{
            //}
            //
            #endregion
      [TestMethod]
            public void UpdateEntityTest()
            {
                UserInfo userInfo = new UserInfo()
                    {
                        UserName = "卓越",
                        LoginCode = "zy",
                        PassWord = "123",
                        ModfiedDate = DateTime.Now,
                        SubTime = DateTime.Now,
                        Remark = "追求卓越",
                        Email = "email@qq.com",
                        UserStatus = 1,
                        DelFlag = 0
                    };
                UserInfoRepository target = new UserInfoRepository();
                var updateUser = target.AddEntity(userInfo);
                Assert.AreEqual(true, userInfo.ID > 0);
    
                UserInfoRepository target2 = new UserInfoRepository();
                UserInfo user = new UserInfo();
                user.ID = userInfo.ID;
                user.UserName = "余光";
                user.Remark = "迁梦余光";
                user.LoginCode = userInfo.LoginCode;
                user.ModfiedDate = userInfo.ModfiedDate;
                user.SubTime = userInfo.SubTime;
                user.DelFlag = 1;
                user.PassWord = "123";
                user.UserStatus = 0;
                user.Email = "email@qq.com";
    
                target2.UpdateEntity(user);
                var temp = target2.LoadEntities(u => u.ID == user.ID).FirstOrDefault<UserInfo>();
                Assert.AreEqual(user.UserName,temp.UserName);
            }
        }
    }

    3.在将要进行测试的方法体中右键——>运行测试,就开始了测试,具体测试结果是否通过,会在测试结果窗口给出提示。

  • 相关阅读:
    loadNibNamed 的使用
    重写UIPageControl实现自定义按钮(转)
    乔布斯办公室语录
    学ACM算法题有用吗?
    基于文法分析的表达式计算器的实现
    我的程序员之路(5)——工作一年
    XCode实用快捷键,谁用谁知道
    LR(1)语法分析表生成
    九大定律,四大原则
    汉字为何不能用笔画编码信息论系列
  • 原文地址:https://www.cnblogs.com/tianboblog/p/3225194.html
Copyright © 2020-2023  润新知