Javascript 使用Mocha和Chai测试web应用程序

Javascript 使用Mocha和Chai测试web应用程序,javascript,mocha.js,bdd,chai,Javascript,Mocha.js,Bdd,Chai,我知道如何使用浏览器上的mocha和chai测试输出值的函数,但我不知道如何使用该系统测试成熟的web应用程序。要将其分解为更简单的内容,我如何测试当单击按钮时,HTML中已经存在的会显示出来 我遵循了这一点,但这并不适用于已经存在的应用程序。它希望我创建一个新的test.html,但如果我的应用程序依赖于预先存在的html,那就没有意义了。它还希望您能够创建一个新的Foo,然后运行测试,比如Foo是否有一个默认的name参数。但是我的应用程序已经在documentready上创建了Foo 也许

我知道如何使用浏览器上的mocha和chai测试输出值的函数,但我不知道如何使用该系统测试成熟的web应用程序。要将其分解为更简单的内容,我如何测试当单击按钮时,HTML中已经存在的
会显示出来

我遵循了这一点,但这并不适用于已经存在的应用程序。它希望我创建一个新的
test.html
,但如果我的应用程序依赖于预先存在的html,那就没有意义了。它还希望您能够创建一个
新的Foo
,然后运行测试,比如
Foo
是否有一个默认的
name
参数。但是我的应用程序已经在
documentready
上创建了
Foo


也许我没有抓住要点。

在测试应用程序时,不应该测试整个应用程序,而应该测试应用程序所包含的各个组件。您可以单独和隔离地测试这些组件

因此,您通常会有“test.html”(以您为例),它只包含测试组件所需的元素。根据您的第一个描述,“test.html”可能只包含一个按钮和一个隐藏的div。您的测试将模拟按钮单击,然后验证div是否不再隐藏

这允许您在将代码集成到更大的web应用程序之前确保代码的行为是正确的,因为这样会变得更复杂

虽然您的应用程序可能已经在文档准备就绪时创建了一个Foo,但该特定代码不会(或不应该)包含在Foo本身的单元测试中


听起来您没有使用我推荐的应用程序框架。它们为web应用程序提供了经过充分研究的结构,并且通常有大量关于测试用它们构建的应用程序的文档。我建议使用AngularJS()或React(),但还有很多选择。

在测试应用程序时,您不应该测试整个应用程序,而应该测试应用程序所包含的各个组件。您可以单独和隔离地测试这些组件

因此,您通常会有“test.html”(以您为例),它只包含测试组件所需的元素。根据您的第一个描述,“test.html”可能只包含一个按钮和一个隐藏的div。您的测试将模拟按钮单击,然后验证div是否不再隐藏

这允许您在将代码集成到更大的web应用程序之前确保代码的行为是正确的,因为这样会变得更复杂

虽然您的应用程序可能已经在文档准备就绪时创建了一个Foo,但该特定代码不会(或不应该)包含在Foo本身的单元测试中


听起来您没有使用我推荐的应用程序框架。它们为web应用程序提供了经过充分研究的结构,并且通常有大量关于测试用它们构建的应用程序的文档。我会推荐AngularJS()或React(),但有很多选择。

这个应用已经在开发和维护中10多年了,很遗憾,没有机会切换到React或React。把Bootstrap放进去本身就是一个奇迹。你的回答对我来说很有意义-我不认为使用测试框架来实际测试整个页面是可能的。啊,好吧。然后使用遗留代码库,我将分离代码部分,一次测试一点。但不幸的是,这将是痛苦的,然而婴儿会向前迈进,并取得进展。其他框架的文档也有助于了解现代框架是如何构造自己以帮助测试的。测试web应用程序或任何应用程序作为一个整体并没有错。它通常被称为“验收测试”,与单元测试不同,您确实希望对应用程序进行端到端测试,所有活动部件一起工作,以确保应用程序在真实世界中工作。也就是说,如果你的应用程序是完美的,但你的托管公司不可靠,这可能会在验收测试中出现,并且需要修复。嘿,托德,你是正确的,你可以作为一个整体测试应用程序,但是在没有组件单元测试基础的情况下,在该级别上进行测试更容易出错。我认为我应该重新措辞,使这一点更加明显,并将在今后的答复中考虑到这一点。最初的问题似乎是建议采用自上而下的方法,我的意思是建议从下至上构建测试。该应用程序已经在开发和维护中使用了10多年,没有机会切换到反应或修改。把Bootstrap放进去本身就是一个奇迹。你的回答对我来说很有意义-我不认为使用测试框架来实际测试整个页面是可能的。啊,好吧。然后使用遗留代码库,我将分离代码部分,一次测试一点。但不幸的是,这将是痛苦的,然而婴儿会向前迈进,并取得进展。其他框架的文档也有助于了解现代框架是如何构造自己以帮助测试的。测试web应用程序或任何应用程序作为一个整体并没有错。它通常被称为“验收测试”,与单元测试不同,您确实希望对应用程序进行端到端测试,所有活动部件一起工作,以确保应用程序在真实世界中工作。也就是说,如果你的应用程序是完美的,但你的托管公司不可靠,这可能会在验收测试中出现,并且需要修复。嘿,托德,你是正确的,你可以作为一个整体测试应用程序,但是在没有组件单元测试基础的情况下,在该级别上进行测试更容易出错。我想