我应该对这门课进行单元测试吗?

时间:2008-12-09 04:40:35

标签: c# unit-testing testing

我知道这可能是一个非常基本的问题,但我现在有点空白。我是否应该对这门课程进行单元测试。

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));

6 个答案:

答案 0 :(得分:4)

我能看到的唯一一件事就是确保你通过你的构造函数输出你输入的句柄。我知道很明显你用这种方式实现它,但测试可以保证它保持这种方式。我会测试这只是因为你是通过构造函数注入它。如果只是{get;组;我可能不会。

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

答案 1 :(得分:2)

我当然会尝试使用NULL(0)或INVALID_HANDLE_VALUE(-1)来构建它,如果合适的话,可能会抛出其中任何一个/两者(不清楚是否可以使用IntPtr初始化类)。零,但几乎可以肯定-1会无效。

答案 2 :(得分:1)

是。如果一堂课值得写,那值得测试

答案 3 :(得分:0)

我的实用主义者说不,因为班级“没有”,所以“没有”可以测试。 但是你肯定还可以测试它,仅用于文档目的,以及作为未来开发人员的合同。

答案 4 :(得分:0)

众所周知,GUI代码难以进行单元测试。我从未发现它在我自己的应用程序中太有用了。只需将您的业务逻辑保留在GUI之外,以便轻松测试。我通常使用手动或自动集成/验收测试来测试gui代码。很难编写一个测试来验证“看起来正确”。

答案 5 :(得分:0)

是写测试。如果稍后有人更改代码或向其添加一些新代码,则至少需要进行一次测试以确保该类按预期工作。