java - 可以在主要 Java 代码上放置测试替身实现吗

标签 java testing test-double

关于 test doubles在测试包含原始库 jar 作为依赖项的代码时,是否可以将它们放在主代码上以便可以使用它们?

有一些代码可以帮助我对我实现的库进行单元测试(测试替身)。是否可以将此代码保留在 jar 中,以便使用该库作为依赖项的代码可以使用它。

最佳答案

简短的回答是否定的。

当您提到 Java 时,我可能会指出 Maven 依赖项和 Gradle 配置。它们将您的主要代码与纯粹用于测试目的的代码之间的依赖关系分开。它们的存在是有原因的。您可以使用生产就绪库进行测试,但不得将测试替身部署到您的生产系统。

我相信您的测试替身符合您的风格指南并且已经过 self 测试。但是安全要求呢?你真的确定你不会用这些测试替身将漏洞引入你的系统吗?在计划渗透测试时,您真的要考虑系统中这些不必要的部分吗?或者更糟的是,你想解释你的笔测试专家考虑他们吗?

如果您开发了可重用的测试组件,那么您就做了一些有用的事情。但是您必须将它们隔离在单独的库中。它们是特殊用途测试框架的一部分。像对待 JUnit 一样对待它们。

关于java - 可以在主要 Java 代码上放置测试替身实现吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55729476/

相关文章:

security - 你能在 Travis CI 上测试漏洞、病毒或危险脚本吗?

c# - 测试复杂实体

node.js - 使用 testdoublejs 测试多个 then 的 Promise

java - PowerkMock-ing BufferedReader 间歇运行

java - java中2个(可能很大)文件的快速模块化加法

java - Z3 求解器 Java API : Unexpected behaviour

java - 使用 Active MQ 的示例 JMS 示例

java - 无法将 UTC 转换为本地时间

perl - 如何从测试中访问 session 数据?