1. 程式人生 > 實用技巧 >C# 單元測試案例

C# 單元測試案例

測試單元程式碼:

使用了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 }