gpt4 book ai didi

javascript - 虽然单元测试我经常需要测试内部(私有(private))逻辑,但最佳实践是什么?

转载 作者:行者123 更新时间:2023-11-30 18:31:02 26 4
gpt4 key购买 nike

我相信每个人都遇到过需要测试类/对象内部连接的情况。我知道在编译语言中,这可以通过条件编译来完成。这也是我应该为 JavaScript 做的吗?完成此类任务的通常方法是什么?也许我应该将类/对象视为黑盒并只测试它的结果?

最佳答案

测试对象的公共(public)契约(Contract)(即您提到的黑盒测试)大多数时候应该足够了。公共(public)成员的适当测试覆盖率也应该适用于大多数私有(private)/内部成员。毕竟,为什么您的类的用户(可能是其他程序员、其他对象/协作者)关心您的对象在内部做什么

当您感到强烈需要测试内部结构时,请将其视为改进的机会。通常,这种需求是您的 code communicating 的结果你的东西 - “也许我不应该是私有(private)的”“也许值得将我重构为独立的存在”

此外,请记住测试内部结构会使您的测试更脆弱。虽然您的对象/类功能(契约(Contract))可能保持不变,但实现可能会经常更改。考虑用第 3 方/外部库替换您自己的代码片段(很常见的更改)——这是破坏测试的原因吗?它不是。

我意识到有时您只需要测试内部结构 - 但 IMO,最好停下来想想您是否可以使您的代码更好(通常您会发现您确实可以!)。当一切都失败时,将内部测试视为最后的手段。

关于javascript - 虽然单元测试我经常需要测试内部(私有(private))逻辑,但最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9615597/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com