api - 模拟每个领域或好的 api

标签 api testing encapsulation unit-testing

如何编写易于单元测试并同时封装数据的代码?

例如,如果我想对某个类进行单元测试,我会为所有字段声明 getter 和 setter。否则我无法注入(inject)模拟。另一方面,我想编写具有非常好的 api 和真正需要的公共(public)方法的类。

我相信你理解我。

最佳答案

如果您的类有一个需要模拟的协作者,那么它将从某个地方获取它——通过构造函数或通过 setter 。所以拥有这些不是设计问题。

但我不会对所有东西都使用 getter,除非它们自然是 API 的一部分。您应该测试观察到的被测对象的行为 - 这意味着您可以通过其公共(public) API 自然而然地获得什么。

我曾经参与过一个项目,开发人员坚持将所有内容公开,以便他可以测试内部状态。那是……嗯……有趣。

关于api - 模拟每个领域或好的 api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5383426/

相关文章:

api - 使用 PC 控制飞利浦 Living Colors

安卓测试 : asserting an activity transitioned to another

android - 我怎样才能让人们真正轻松地测试我的应用程序?

javascript - 这个 getter-setter 闭包是否有充分的理由以这种方式在其内部对象中声明它的私有(private)属性?

java - 创建后不应更改属性

javascript - 如何检查我的 XMLHttpRequest post 方法是否成功?

php - 如何知道网站是否正在通过 AJAX 请求访问

javascript - 如何使用 mocha.js 测试纯 JavaScript 模块

android - 如何在 Android 中分离相机和 GUI?

python - 在 Python 中获取 DocuSign 中的 token