如何编写可测试的代码并能够对其进行测试?
How to write testable code and be able to test it?
我正在为将加载应用程序配置(如 "debug" 值)和其他服务配置的 Silex 应用程序编写 ConfigServiceProvider
。在这样的提供程序中,我需要从文件系统读取实际的 yaml 文件,解析它,然后加载到 $app
。这是此提供程序的主要目的。但是我该如何测试这段代码呢?我应该测试它,还是我可以模拟功能?
private function /*ConfigServiceProvider::*/parseYamlFile($filename)
{
return $app["yaml.parser"]->parse(file_get_content(
$app["config.locator"]->locate($filename)));
}
在此方法中唯一可以测试的是是否进行了正确的调用。
你通过模拟解析器和配置定位器来测试它,你还需要摆脱 file_get_content
调用,使用一个库,并模拟它。
如果您想检查 yaml 解析器是否按预期工作,那么您应该为该库编写一个测试。
我正在为将加载应用程序配置(如 "debug" 值)和其他服务配置的 Silex 应用程序编写 ConfigServiceProvider
。在这样的提供程序中,我需要从文件系统读取实际的 yaml 文件,解析它,然后加载到 $app
。这是此提供程序的主要目的。但是我该如何测试这段代码呢?我应该测试它,还是我可以模拟功能?
private function /*ConfigServiceProvider::*/parseYamlFile($filename)
{
return $app["yaml.parser"]->parse(file_get_content(
$app["config.locator"]->locate($filename)));
}
在此方法中唯一可以测试的是是否进行了正确的调用。
你通过模拟解析器和配置定位器来测试它,你还需要摆脱 file_get_content
调用,使用一个库,并模拟它。
如果您想检查 yaml 解析器是否按预期工作,那么您应该为该库编写一个测试。