繁体   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