1

我知道这听起来像是一个愚蠢的问题,因为我听到很多人说你应该只对公共功能进行单元测试,事实上,Visual Studio IDE 中的 visual basic.net 只允许我对公共功能进行单元测试。

但是,我得到了一个调用许多其他私有函数的公共函数。如果我对那个公共功能进行单元测试,那就太复杂了。我只想单独测试每个私有函数,以确保它首先正常工作,然后再跳转到父公共函数。

我想到的一种解决方案是,我可以将所有私有函数更改为公共函数,以便 Visual Studio 允许我对它们进行单元测试。但这让我很烦,因为我不希望他们公开。

有什么建议可以告诉我吗?

提前谢谢了。

NTC

4

2 回答 2

1

如果您真的不能将代码分成单独的类,您可以将所有私有函数更改为受保护,然后在您的测试类中创建一个私有类,该类继承自您要测试的类(这将是命名为假或存根,因此我建议将其设为私有。您不希望测试类之外的代码与之交互)。在您继承的类中,为每个现在受保护的函数创建公共函数,这些函数只需调用基础并针对这些函数编写单元测试。

于 2013-05-12T13:28:00.613 回答
0

如果此功能在 VB 中不可用,我深表歉意:

创建要测试的类的子类。确保子类具有私有函数的公共接口。

至于“只有单元测试公共功能”?那是马粪。你测试什么可能会失败。例如,您可能有一个只有一个公共函数的类,并且您想重构为一组对私有函数的调用以降低复杂性。如果您出于任何原因必须重构您的解决方案(正如其中一个评论所建议的那样),那么第一步是测试您在重构期间必须更改的所有解决方案。

于 2013-05-12T12:43:22.550 回答