假设我想构建一个Vector库。它有一个Vector结构体:如何在不暴露访问器的情况下单元测试结构
(struct vector (x y z))
现在我想为测试模块中的矢量模块编写单元测试。 进行测试我需要访问x y和z。但我不想公开vector-{xyz}
。有没有办法为单元测试提供访问器?
假设我想构建一个Vector库。它有一个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))
然后我可以要求私有测试仅用于测试目的。
;; test.rkt
(require (submod "vector.rkt" private-test)
Make test a submodule(in the same file)? [不确定这是否是你之后的] – soegaard