using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace UnitTestRefactoring.UnitTests
{
[TestClass]
public class OrderService_UnitTests : ServiceBaseUnitTestClass
{
[TestMethod]
public void OrderService_GetOrders_NormalFlows()
{
OrderService testOrderService = new OrderService(mockServiceConnection, mockServiceReader, mockServiceWriter);
bool testResult = testOrderService.GetOrders("10293884");
Assert.AreEqual(true, testResult);
}
[TestMethod]
public void OrderService_GetOrders_OrderIdIsNull()
{
OrderService testOrderService = new OrderService(mockServiceConnection, mockServiceReader, mockServiceWriter);
bool testResult = testOrderService.GetOrders(string.Empty);
Assert.AreEqual(false, testResult);
}
}
}

  OrderService_UnitTests 类;
  提取出来的抽象基类能在后面的单元测试重构中帮很大忙,也是为了后面的面向特定领域的单元测试框架做要基础工作;由于不同的单元测试类具有不同的基类,这里需要我们自己的分析抽象,比如这里跟Service相关的,可能还有跟Order处理流程相关的,相同的一组接口也只能出现在相关的测试类中;
  2.1.2】公用的Mock行为
  前面2.1.1】小结,我们讲了Mock接口对象的重构,这一节我们将来分析一下关于Mock对象行为的重构;在上面的IServiceConnection中我们加入了一个Open方法,用来打开远程链接;

 

namespace UnitTestRefactoring
{
public interface IServiceConnection
{
bool Open();
}
}
namespace UnitTestRefactoring
{
public interface IServiceConnection
{
bool Open();
}
}