假设我正在做类似以下的事情,我想要测试以确保每个Letter都使用正确的$data进行了初始化。
public someMethod()
{
for ($i = 0; $i < 5; $i++)
{
$letter = new Letter($data);
$letter->send();
}
}我想指出的主要问题是在someMethod()调用中完全封装了5个字母。它们永远不会离开方法的作用域,所以我不能测试返回值,而且有多个返回值,所以依赖项注入似乎不是一个选项。
发布于 2011-08-13 04:54:39
依赖注入是可能的:
public someMethod($letterFactory)
{
for ($i = 0; $i < 5; $i++)
{
$letter = $letterFactory->create($data);
$letter->send();
}
}(伪代码,因为我不确定这应该是什么语言。)
然后,您的单元测试可以提供生成模拟Letter对象的$letterFactory的模拟实现。
https://stackoverflow.com/questions/7046150
复制相似问题