Unit testing 部署伪装成程序的大型测试

Unit testing 部署伪装成程序的大型测试,unit-testing,design-patterns,testing,methodology,software-quality,Unit Testing,Design Patterns,Testing,Methodology,Software Quality,如果有人创建了一个小型的内部诊断web应用程序,它使用(单元)测试作为逻辑,那么有没有一个有效的理由这样做?请记住,Nunit也必须部署在这个网站的任何地方 我认为程序应该包含它们自己的逻辑和可能的可重用部分(如果有的话),但不应该包含它们逻辑的包装测试。测试用于验证代码逻辑。如果您说测试将是代码逻辑,那么您不需要编写测试来验证测试吗?为什么这从根本上是错误的 提示:因为现在您将所有这些测试串在一起并相互关联,这意味着它们不再依赖(?。代码就是代码。仅仅因为它被标记为测试并不意味着它不是一个有用

如果有人创建了一个小型的内部诊断web应用程序,它使用(单元)测试作为逻辑,那么有没有一个有效的理由这样做?请记住,Nunit也必须部署在这个网站的任何地方

我认为程序应该包含它们自己的逻辑和可能的可重用部分(如果有的话),但不应该包含它们逻辑的包装测试。测试用于验证代码逻辑。如果您说测试将是代码逻辑,那么您不需要编写测试来验证测试吗?为什么这从根本上是错误的


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

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

假设我们需要对beahviour编写大量验证。为什么使用测试框架是个坏主意?我们是否应该编写一个具有相同功能的新框架,并称之为不同的东西

从外部观察。这个应用程序声称可以做某些事情。它做得对吗?可靠地?它能被维护、增强吗?明白了吗

如果是这样的话,为什么您关心它在实现中碰巧使用了一个测试框架呢。如果其行为或结构有缺陷,则我们将予以批评


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

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

假设我们需要对beahviour编写大量验证。为什么使用测试框架是个坏主意?我们是否应该编写一个具有相同功能的新框架,并称之为不同的东西

从外部观察。这个应用程序声称可以做某些事情。它做得对吗?可靠地?它能被维护、增强吗?明白了吗

如果是这样的话,为什么您关心它在实现中碰巧使用了一个测试框架呢。如果其行为或结构有缺陷,则我们将予以批评


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

我敢肯定,如果你看这个问题,你会发现你正在使用几种反模式。

如果你看这个问题,我敢肯定,您会发现您正在提交服务器反模式。

将单元测试框架用于单元测试之外的其他内容通常不是最合适的途径。您不必为单元测试编写测试,因为您首先编写测试,然后会看到它们失败。这就是你知道他们工作正常的原因。我猜在单元测试框架中编写的测试代码是不寻常的,如果我有一个用于关键软件的诊断应用程序,我真的希望它能够正常工作


编辑:看起来你已经下定决心了,但是在表达为什么目前的策略对其他项目成员来说不够理想时需要支持。如果是这样的话,我建议你把你的代码放在嘴边,然后把一个设计不同的小样本应用程序放在一起。如果在这种特定情况下使用单元测试框架是一个糟糕的设计决策,那么这就很清楚了。

使用单元测试框架进行单元测试以外的其他事情通常不是最合适的途径。您不必为单元测试编写测试,因为您首先编写测试,然后会看到它们失败。这就是你知道他们工作正常的原因。我猜在单元测试框架中编写的测试代码是不寻常的,如果我有一个用于关键软件的诊断应用程序,我真的希望它能够正常工作


编辑:看起来你已经下定决心了,但是在表达为什么目前的策略对其他项目成员来说不够理想时需要支持。如果是这样的话,我建议你把你的代码放在嘴边,然后把一个设计不同的小样本应用程序放在一起。如果在这个特定的案例中使用单元测试框架是一个糟糕的设计决策,那么这将清楚地表明这一点。

单元测试的目的是确保您的类按照它应该的方式工作,并且符合接口。所以,如果您正在为某些测试应用程序使用单元测试,那么它看起来就像在程序逻辑中使用assert

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


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

单元测试的目的是确保您的类按照它应该的方式工作,并且符合接口。所以,如果您正在为某些测试应用程序使用单元测试,那么它看起来就像在程序逻辑中使用assert

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


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

然后您会测试这些测试的测试吗?如果你这样想的话,会有点失控…所依赖的NUnit依赖性是什么?因为它调用了一个测试程序集,需要NUnit,所以项目必须部署NUnit。应用程序在中使用[Test]