C# 我应该对这个类进行单元测试吗?
我知道这可能是一个非常基本的问题,但我现在有点头脑空白。我应该对这个类进行单元测试吗C# 我应该对这个类进行单元测试吗?,c#,unit-testing,testing,C#,Unit Testing,Testing,我知道这可能是一个非常基本的问题,但我现在有点头脑空白。我应该对这个类进行单元测试吗 public class MapinfoWindowHandle : IWin32Window { IntPtr handle; public MapinfoWindowHandle(IntPtr mapinfoHandle) { this.handle = mapinfoHandle; }
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;set;},我可能不会
[TestMethod]
public void ConstructorTest()
{
IntPtr handle = new IntPtr(100);
MapinfoWindowHandle winHandle = new MapinfoWindowHandle(handle);
Assert.AreEqual( handle, ((IWin32Window)winHandle).Handle );
}
我所能看到的唯一一件事就是确保你通过构造器释放了你输入的句柄。我知道很明显,您是以这种方式实现的,但是测试可以保证它保持这种方式。我只会测试它,因为您是通过构造函数注入它的。如果只是{get;set;},我可能不会
[TestMethod]
public void ConstructorTest()
{
IntPtr handle = new IntPtr(100);
MapinfoWindowHandle winHandle = new MapinfoWindowHandle(handle);
Assert.AreEqual( handle, ((IWin32Window)winHandle).Handle );
}
我内心的实用主义者说不,因为班级什么都不做,所以没有什么可测试的。
但是,您仍然可以测试它,只是出于文档目的,并且作为未来开发人员的契约。我的实用主义者说不,因为类什么都不做,所以没有什么可测试的。
但是,您仍然可以测试它,只是为了编写文档,并作为未来开发人员的合同。GUI代码很难进行单元测试。我从未发现它在我自己的应用程序中太有用。只需将业务逻辑排除在GUI之外,就可以轻松地进行测试。我通常使用手动或自动集成/验收测试来测试gui代码。很难编写测试来验证某些东西是否正确。众所周知,GUI代码很难进行单元测试。我从未发现它在我自己的应用程序中太有用。只需将业务逻辑排除在GUI之外,就可以轻松地进行测试。我通常使用手动或自动集成/验收测试来测试gui代码。很难编写一个测试来验证某些东西是否正确。我肯定会测试是否尝试使用NULL 0或无效的\u HANDLE\u值-1来构造它,如果合适,可能会将其抛出其中一个/两个。不清楚是否可以使用IntPtr.Zero初始化类,但是几乎可以肯定的是-1是无效的。我肯定会尝试用空0或无效的\u HANDLE\u值-1来构造它,如果合适的话,可能会将它抛出其中一个/两个。不清楚是否可以用IntPtr.Zero初始化类,但几乎可以肯定的是-1是无效的。是的。如果一个类值得编写,那么它就值得测试。如果一个类值得编写,那么它值得测试是,编写测试。如果以后有人更改代码或向其添加新代码,您至少要进行一次测试,以确保该类按预期工作 是,编写测试。如果以后有人更改代码或向其添加新代码,您至少要进行一次测试,以确保该类按预期工作 但是这个类确实有一个可以测试的契约。构造函数参数必须是结果属性。琐碎但可测试。但该类确实有一个可测试的契约。构造函数参数必须是结果属性。琐碎但可检验。绝对主义从来没有给任何人带来好处。你确实意识到那句话的讽刺,不是吗?将来你应该加上标签:绝对主义从来没有给任何人带来好处。你确实意识到那句话的讽刺,不是吗?将来你应该加上标签: