测试单元代码:
使用了Mock框架,得提前导入Moq程序包,使用Nuget搜索
using Moq;
namespace UnitTestProject1.test { [TestClass] public class UnitTest1 { [TestMethod] public void TestMethod1() { var mock = new Mock<IPower>(); mock.Setup(pw => pw.GetPower()).Returns(() => 0); var powtest = new DeskFun(mock.Object); var expect = "不能工作"; var actual = powtest.Work(); Assert.AreEqual(expect, actual); } [TestMethod] public void warnWork() { var mock = new Mock<IPower>(); mock.Setup(pw => pw.GetPower()).Returns(() => 220); var fun = new DeskFun(mock.Object); var expected = "警告"; var actual = fun.Work(); Assert.AreEqual(expected,actual); } } }
测试类和接口:
1 public interface IPower 2 { 3 int GetPower(); 4 } 5 6 /// <summary> 7 /// 接口实现方法 8 /// </summary> 9 public class PowerSupper : IPower 10 { 11 public int GetPower() 12 { 13 return 100; 14 } 15 } 16 17 public class DeskFun 18 { 19 private IPower _powerSupper; 20 21 public DeskFun(IPower powerSupper) 22 { 23 _powerSupper = powerSupper; 24 } 25 26 /// <summary> 27 /// 工作方法 28 /// </summary> 29 /// <returns>返回工作状态</returns> 30 public string Work() 31 { 32 int power = _powerSupper.GetPower(); 33 34 if (power <= 0) 35 { 36 return "不能工作"; 37 } 38 else if (power < 100) 39 { 40 return "工作慢"; 41 } 42 else if (power < 200) 43 { 44 return "正常工作"; 45 } 46 else 47 { 48 return "警告"; 49 } 50 }