我有一个模块,我正在编写单元测试以运行travis.ci。
在我的模块中,我对Web服务执行HTTP POST操作。
我内部唯一的一个功能validate_http_response()
是我创建的用于回放Web服务调用的功能的组成部分,所以我想测试它。但是,由于没有这样的export validate_http_response
功能,因此无法看到""通过我的测试脚本,我得到错误:
validate_http_response not defined
我应该如何构建我的测试,以便我不必将内部函数复制并粘贴到测试本身(其中有一些)?我希望不要同时维护src
和test
脚本。
编辑除了接受的答案,我还发现我可以在测试脚本的开头执行以下操作:include("../src/myfunctions.jl")
,因为我为{{1}中的每个文件都有一个单独的测试脚本}}
答案 0 :(得分:9)
再次,查看模块上的documentation以更好地了解命名空间的工作原理。 Julia中没有强制可见性,因此您可以通过完全限定引用来访问任何模块中的函数,导出或未导出。因此,在您的情况下,如果您的模块名为HTTP
,则可以说HTTP.validate_http_response
来访问您未导出的函数进行测试。
答案 1 :(得分:0)
有两个解决方案:
第一个解决方案很简单但是会破坏你的API。第二个是干净但可能需要做很多工作。