在制作 javascript/NodeJS 应用程序原型时应该和不应该对什么进行单元测试?

What should and should not be unit tested when prototyping javascript/NodeJS application?

我知道理想情况下我应该对所有内容进行单元测试。到目前为止,那是我的态度。但是,作为一家单人创业公司,我认为这是完全错误的方法,尤其是对于原型设计而言。主要是因为大部分代码在投入生产之前将被更改或修改。

我找到了 this answer,但它对于原型制作来说似乎仍然有点矫枉过正。

我明白不测试不是一个选项,但是如何找到应该测试和不应该测试的平衡点?

如果您回答这个问题,我也将非常感谢资源链接,如果您知道有关该主题的任何好的文章,请。

测试让您对软件充满信心的因素。这就是所有测试所做的,确保您编写的内容符合您的想法(尤其是当您更改内容时)。

其中一些是个性。您可以编写 0 个测试并有 99% 的信心,当然有时您会感到惊讶。您可以编写大量测试并有 10% 的信心,因为您只是一个担心者。

就我个人而言,我建议为您的主要功能和流程编写测试。登录、向数据库发送数据、运行算法、从某处接收事件等。这些可能只是目前的成功案例,但是当你 运行 你的测试时你就会知道您的软件的主要部分将工作。

并确保它们一起工作 - 进行一些与多个组件交互的测试。我知道这不是 "true unit test",我不会深入探讨集成测试和单元测试之间的选择,但如果您在真空中测试所有内容,您将毫无根据地相信所有部分都能协同工作。

同样,运行使用自动化测试套件的要点是:如果测试通过,您就知道您的软件可以正常工作(至少与编写的测试一样好,因此您可以随时添加随着极端情况的出现,进行更多测试)。

我认为: 我建议从 "the outside" 开始测试您的系统。你在写一个 REST 服务器吗?将测试编写为 HTTP 请求,以确保输入正确的数据并返回正确的数据。我会使用真实的数据库而不是模拟所有内容,因为有时持久性或查询的工作方式与您编写的代码不完全一样。您会更有信心,您的软件的外部 "user" 将获得您期望的数据,并且您的软件会按预期运行。