Julia 如何在safetestsets中使用单独的集合时消除代码重复性
我是朱莉娅的新手,我正试图为精灵编写测试。我正在使用安全测试集。它确实可以帮助我们在不同的集合中分离测试,但是现在有很多重复的代码,因为您不能访问集合范围之外的代码 例如,在下面的示例中,使用Julia 如何在safetestsets中使用单独的集合时消除代码重复性,julia,Julia,我是朱莉娅的新手,我正试图为精灵编写测试。我正在使用安全测试集。它确实可以帮助我们在不同的集合中分离测试,但是现在有很多重复的代码,因为您不能访问集合范围之外的代码 例如,在下面的示例中,使用Genie,Genie.Assets正在重复 @safetestset "Assets functionality" begin @safetestset "Assets paths" begin using Genie, Genie.Assets
Genie
,Genie.Assets
正在重复
@safetestset "Assets functionality" begin
@safetestset "Assets paths" begin
using Genie, Genie.Assets
@test include_asset(:css, "foo") == "/css/foo.css"
@test include_asset(:js, "foo") == "/js/foo.js"
@test css_asset("foo") == css("foo") == "/css/foo.css"
@test js_asset("foo") == js("foo") == "/js/foo.js"
end;
@safetestset "Expose settings" begin
using Genie, Genie.Assets
@test js_settings() == "window.Genie = {};\nGenie.Settings = {\"webchannels_autosubscribe\":true,\"server_host\":\"127.0.0.1\",\"webchannels_subscribe_channel\":\"subscribe\",\"server_port\":8000,\"webchannels_default_route\":\"__\",\"webchannels_unsubscribe_channel\":\"unsubscribe\",\"websockets_port\":8001}\n"
end
@safetestset "Embedded assets" begin
using Genie, Genie.Assets
@test channels()[1:18] == "window.Genie = {};"
@test channels_script()[1:27] == "<script>\nwindow.Genie = {};"
@test channels_support() == "<script src=\"/__/channels.js?v=$(Genie.Configuration.GENIE_VERSION)\"></script>"
@test Genie.Router.routes()[1].path == "/__/channels.js"
@test Genie.Router.channels()[1].path == "/__/unsubscribe"
@test Genie.Router.channels()[2].path == "/__/subscribe"
@test favicon_support() == "<link rel=\"icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />"
end
end;
@safetestset“资产功能”开始
@安全测试集“资产路径”开始
使用精灵,精灵,资源
@测试包括_资产(:css,“foo”)==“/css/foo.css”
@测试包括_资产(:js,“foo”)==“/js/foo.js”
@测试css_资产(“foo”)==css(“foo”)==“/css/foo.css”
@测试js_资产(“foo”)==js(“foo”)==“/js/foo.js”
结束;
@安全测试集“公开设置”开始
使用精灵,精灵,资源
@测试js\u settings()==“window.Genie={};\nGenie.settings={“网络频道自动订阅”:true,“服务器主机”:“127.0.0.1\”,“网络频道订阅频道”:“订阅”,“服务器端口”:“8000”,“网络频道默认路由”:“取消订阅频道”:“取消订阅”,“网络频道取消订阅频道”:“取消订阅”,“网络频道端口8001\”
结束
@安全测试集“嵌入式资产”开始
使用精灵,精灵,资源
@测试通道()[1:18]==“window.Genie={};”
@测试通道\u脚本()[1:27]==“\nWindows.Genie={};”
@测试通道\u支持()
@测试Genie.Router.routes()[1]。路径=“/\uu\u/channels.js”
@测试Genie.Router.channels()[1]。路径=“/\uuuu/取消订阅”
@测试Genie.Router.channels()[2]。路径==“/\uuuu/订阅”
@测试favicon_支持()
结束
结束;
因为@safetestset
为每个TestSet
创建了一个新模块,所以每个都需要使用与模块相同的语句
它被设计为隔离测试集,因此通过设计每个语句都需要导入它使用的模块
从我看到其他人如何使用@safetestset
(例如),@safetestset通常会将include
包装到脚本中,并确保该脚本独立运行,避免出现类似这样的问题。谢谢你,max。感谢你解释julialang对话链接的错误