部署一个伪装成程序的大型测试

时间:2009-08-19 14:21:13

标签: unit-testing design-patterns testing methodology software-quality

如果有人创建了一个使用(单元)测试作为其逻辑的小型诊断内部Web应用程序,那么有没有正当理由这样做?请记住,无论在哪个网站上,都必须部署Nunit。

我认为程序应该包含它们自己的逻辑和可能的可重用部分(如果可用),但不包含其逻辑的测试。测试用于验证代码逻辑。如果您说测试将成为代码逻辑,那么您是否应该编写测试来验证测试?为什么这根本不对?

提示:因为现在你将所有这些测试串在一起并将它们相互关联,这意味着它们不再依赖(?)。

4 个答案:

答案 0 :(得分:3)

将单元测试框架用于单元测试以外的其他方面通常不是最合适的路径。您不必为单元测试编写测试,因为您先编写测试并看到它们失败。这就是你知道他们正常工作的方式。我猜测在单元测试框架中编写的测试代码是非常重要的,如果我有一个关键软件的诊断应用程序,我真的希望确定它能够正常工作。

编辑:您似乎已经下定决心,但需要支持来表达为什么当前的策略对其他项目成员来说不太理想。如果是这种情况,我建议你将代码放在嘴边,并将一个小样本应用程序放在一起设计。如果在这个特定情况下使用单元测试框架是一个糟糕的设计决策,那么这将使其成为阳光。

答案 1 :(得分:0)

代码就是代码。仅仅因为它被标记为测试并不意味着它也不是一个有用的应用程序。

假设我们需要写很多beahviour的验证。为什么使用测试框架是一个坏主意?我们改为编写一个具有相同功能的新框架,并将其称为不同的东西?

采取外部观点。此appciation声称做某些事情。它能正确完成吗?可靠?它可以维持,增强吗?理解?

如果是这样,为什么要关心在其实现中使用测试框架。如果它的行为或结构有缺陷那么我们会批评。

伟大技术的一个可爱之处在于它具有意想不到的应用。

答案 2 :(得分:0)

我很确定如果你看看这个问题TDD Anti-patters catalogue,你会发现你正在提交严格的反模式。

答案 3 :(得分:0)

单元测试的目的是确保您的类按照它应该的方式工作并根据界面。因此,如果您在某些测试应用程序中使用单元测试,则似乎在程序逻辑中使用assert。

如果您需要一些测试应用程序 - 实现它并使用WITH单元测试。它可能是配置某些东西或获得一些用户交互。

我看到的另一个原因 - 单元测试是根据一切工作原理的假设编写的。如果你的假设正确,那么测试应该通过。添加功能单元测试时,您可以确信所有假设仍然存在。因此,每项测试都应该保持尽可能简单。这就是为什么不需要测试测试代码,也不需要在任何测试应用程序中使用测试代码。