欢迎光临
梦想从学习开始!

单元测试之初试| 小熊测试

本文主要介绍 单元测试之初试| 小熊测试,小熊希望对大家的学习或者工作具有一定的参考学习价值,在测试领域有所提升和发展。

  研究了一周的单元测试,现在勉强算是摸到了门槛,现整理笔记如下:

  项目架构是简单的工厂模式,对应代码为:

  DAL

using System.Collections.Generic;

using MetalsExchange.IDAL;

using MetalsExchange.DBUtility;

using MetalsExchange.Model;

namespace MetalsExchange.SQLServerDAL

{

public class Employee: IEmployee

{

public IList<CustomerInfo> GetCustomerList()

{

IList<CustomerInfo> list = new List<CustomerInfo>();

return list;

}

}

}

  IDAL

using System.Collections.Generic;

using MetalsExchange.Model;

namespace MetalsExchange.IDAL

{

public interface IEmployee

{

IList<CustomerInfo> GetCustomerList();

}

}

 
 BLL

using System.Collections.Generic;

using MetalsExchange.Model;

using MetalsExchange.IDAL;

namespace MetalsExchange.Bll

{

public  class EmployeeBll

{

public IEmployee dal = DALFactory.DataAccess.CreateEmployee();

public IList<CustomerInfo> GetCustomerList()

{

return dal.GetCustomerList();

}

}

}

  DALFactory

using System.Configuration;

using System.Reflection;

namespace MetalsExchange.DALFactory

{

public class DataAccess

{

private static  string path {

get {

string _path= ConfigurationManager.AppSettings["WebDAL"];

if (_path == null)

_path = "MetalsExchange.SQLServerDAL";

return _path;

}

}

public static IDAL.IEmployee CreateEmployee()

{

string className = path + ".Employee";

return (IDAL.IEmployee)Assembly.Load(path).CreateInstance(className);

}

}

}

  最开始就卡在这里,一度以为静态方法无法单元测试,后来发现原因是因为ConfigurationManager.AppSettings["WebDAL"]取不到值,因为测试项目里面没有config文档,目前我采用了最简单的方法来解决,最好的方法是将这个方法重新封装

  单元测试

using Microsoft.VisualStudio.TestTools.UnitTesting;

using System.Collections.Generic;

using Moq;

using MetalsExchange.IDAL;

using MetalsExchange.Model;

namespace MetalsExchange.Bll.Tests

{

[TestClass()]

public class EmployeeBllTests

{

[TestMethod()]

public void GetCustomerListTest()

{

//arrange

var mock = new Mock<IEmployee>();

mock.Setup(customer => customer.GetCustomerList()).Returns(new List<CustomerInfo>());

EmployeeBll employee = new EmployeeBll();

//art

IList<CustomerInfo> list = employee.GetCustomerList();

mock.Verify();

//assert

Assert.ReferenceEquals(list, mock.Object.GetCustomerList());

}

}

}

  工厂类是一个静态类,其实也可以做单元测试

using Microsoft.VisualStudio.TestTools.UnitTesting;

using MetalsExchange.IDAL;

namespace MetalsExchange.DALFactory.Tests

{

[TestClass()]

public class DataAccessTests

{

[TestMethod()]

public void CreateEmployeeTest()

{

IEmployee dal = DataAccess.CreateEmployee();

Assert.IsNotNull(dal);

}

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小熊分享邦(www.xxfxb.com),希望大家能坚持软件测试之路,谢谢。

赞(0) 打赏
未经允许不得转载:小熊分享邦 » 单元测试之初试| 小熊测试

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏