unit-testing - 如何在不暴露访问器的情况下对结构进行单元测试

标签 unit-testing racket abstract-data-type

假设我想建立一个矢量库。它有一个 Vector 结构:

(struct vector (x y z))

现在我想在测试模块中为向量模块编写单元测试。 为了进行测试,我需要访问 x y 和 z。但我不想公开 vector-{xyz}。有没有办法只为单元测试提供访问器?

最佳答案

我确实找到了一种使用 submodule 隐藏内容的方法

 ;; vector.rkt
 (struct vector (x y z))

 (module* private-test #f
           (provide vector-x vector-y vector-z))

然后我可以仅出于测试目的要求私有(private)测试。

 ;; test.rkt
 (require (submod "vector.rkt" private-test)

关于unit-testing - 如何在不暴露访问器的情况下对结构进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32373784/

相关文章:

android - Dagger2 可以用于单元测试和插桩测试吗?

unit-testing - 如何保证编译和测试配置的库版本相同

c# - 如何使用应有的自定义断言并维护特定于调用站点的断言消息?

formatting - SCHEME 递归完美数(初学者,希望很容易修复)

java - 在 Java 类中重新分配 `this`

performance - 如何持续占用80%的CPU?

scheme - 寻找更清晰的方法来从数字列表中创建关联列表

racket - 无法理解 Racket 功能

在结构中创建指向结构的指针数组

c - 整数列表的C语言ADT实现