我正在使用C#编写我的第一个Windows窗体程序。它由3个类组成,每个表一个。除了构造函数之外,每个类中的所有方法都是私有的。
在试图弄清楚如何为方法编写单元测试时,我发现了几篇帖子和文章说不应该对私有方法进行单元测试,因为私有方法是一种实现,而不是公共行为
我认为我理解这种推理,但这似乎意味着我的代码的 NONE 将为其编写单元测试。一切都是事件驱动的,当点击按钮,在字段中输入值或计时器滴答时发生。
这是对的吗?我的代码应该没有单元测试吗? (如果这是另一个问题的重复,我道歉。我看了,但找不到解决这个问题的任何内容。)
答案 0 :(得分:2)
确实,私有方法是应用程序的私有实现,它们不应该是对它们进行单元测试。大多数时候,他们将通过公共方法进行内部调用。通过测试公共方法,您将测试这些私有方法。
您的私有方法是事件驱动的,正如您所说,当用户点击按钮等时将执行...如果您认为您的事件处理程序包含大量应该测试的逻辑,那么我建议您按照这些步骤操作:
position = ftell(your_file)
修饰符标记包含事件处理程序的所有类(表单)。使用此修饰符,这些类只能在定义它们的同一程序集中访问。fseek(your_file, position, SEEK_SET)
修饰符标记所有事件处理程序方法。因为步骤1中的类是internal
,所以这些方法只对定义它们的程序集可见,然后才在Windows窗体项目中显示。public
其中 MyTestAssemblyName 是测试项目的程序集名称。