子类化

通过继承 Test::Nginx::Socket 创建自定义的测试基类,添加项目特定的默认行为。

基本子类

创建自定义测试基类可以为项目统一设置默认行为:

perl
1# lib/Test/MyProject.pm
2package Test::MyProject;
3use base 'Test::Nginx::Socket::Lua';
4
5# 设置默认的 http_config
6sub http_config {
7 return <<'_EOC_';
8 lua_package_path "/path/to/my/lib/?.lua;;";
9 lua_shared_dict cache 10m;
10_EOC_
11}
12
131;
14
15# 在测试文件中使用
16use Test::MyProject;
17run_tests();
18
19__DATA__
20...

子类化是大型项目管理测试基础设施的最佳方式。OpenResty 的各个子项目都使用了自定义测试基类。