簡體   English   中英

我應該對這節課進行單元測試嗎?

[英]Should I be unit testing this class?

我知道這可能是一個非常基本的問題,但此刻我有些空白。 我應該對這堂課進行單元測試嗎?

public class MapinfoWindowHandle : IWin32Window
    {
        IntPtr handle;

        public MapinfoWindowHandle(IntPtr mapinfoHandle)
        {
            this.handle = mapinfoHandle;     
        }

        #region IWin32Window Members

        IntPtr IWin32Window.Handle
        {
            get { return this.handle; }
        }

        #endregion
    }

如果我應該做我應該測試什么?
我這樣使用它:

IntPtr handle = new IntPtr(100);
myform.show(new MapinfoWindowHandle(handle));

我唯一能看到的就是確保您擺脫了通過構造函數放入的句柄。 我知道您顯然是通過這種方式實現的,但是通過測試可以確保您保持這種方式。 我只測試這是因為您是通過構造函數注入它的。 如果只是{get; 組; 我可能不會。

 [TestMethod]
 public void ConstructorTest()
 {
      IntPtr handle = new IntPtr(100);
      MapinfoWindowHandle winHandle = new MapinfoWindowHandle(handle);
      Assert.AreEqual( handle, ((IWin32Window)winHandle).Handle );
 }

我肯定會嘗試嘗試使用NULL(0)或INVALID_HANDLE_VALUE(-1)構造它,並且如果合適的話,可能會將它同時放在兩者中(尚不清楚是否可以使用IntPtr.Zero初始化該類,但是幾乎可以肯定-1是無效的。

是。 如果一個班級值得寫作,那值得測試

我的實用主義者說“不”,因為班級“什么也沒有做”,因此沒有“什么也沒有要測試”。 但是請確保您仍然可以測試它,僅出於文檔目的,並作為與將來開發人員的合同。

眾所周知,GUI代碼很難進行單元測試。 我從來沒有發現它在我自己的應用程序中有用。 只需將您的業務邏輯放在GUI之外,即可輕松進行測試。 我通常使用手動或自動集成/驗收測試來測試gui代碼。 編寫測試以驗證“外觀正確”是很困難的。

是的,編寫測試。 如果以后有人更改了代碼或向其中添加了一些新代碼,則您至少要進行一次測試,以確保該類能夠按預期運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM