1

The topic of using asserts during development is widely covered on SO. The code has three conditions:

1) Development
2) Testing
3) Production

Asserts are present in the development version and are removed from production version. But I've found anything that says they should they remain or be removed in the testing version? Any thooughts?

4

3 回答 3

3

意见:如果你打破测试:

  • 功能测试(断言保留)
  • 单元/集成/系统测试(保留断言)
  • 发布/验收测试(无断言;您测试生产就绪代码)
于 2013-10-23T14:16:31.997 回答
2

我从不写asserts。相反,我对真实的生产代码进行单元测试和集成测试等。

我不喜欢使用assert,因为它们检测问题的能力有些有限,而且我对意外的副作用感到偏执。

我非常不喜欢在代码中使用条件条件来根据构建标志(例如开发与生产)来编译或编译某些内容。这些条件只会使代码复杂化,并且它们必须有可能使您测试的代码与生产中的代码不同。

我个人的感觉是,实际业务模块中应该编写的唯一代码是生产级代码,所有测试都应该针对它进行。不得出于测试目的对业务模型进行任何更改。即,如果您想测试某些东西,请制作它public并为其编写外部测试。

于 2013-10-23T14:24:55.667 回答
0

如果您正在从 .NET 开发任何东西,例如 MFC 或 C#,那么 ASSERTS 将不会包含在发布版本中,您不必进行任何修改。如果出现任何错误(这将 ;) ),请将它们留给更好的调试。至于 JS 和 PHP,我会说日志更好,因为与开发人员消息一起弹出的断言或警报看起来非常糟糕且令人费解。

PS> 所有观点均为个人观点

于 2013-10-23T14:06:33.630 回答