我只是想了解"正确的方式"在下列情况下编写单元测试:
class Time
{
public function __construct(Hour $h, Minute $m, Second $s) {}
}
class TimeRange
{
public function __construct(Time $start, Time, $end)
{
if ($this->startTime > $this->endTime) {
throw new \Exception;
}
}
}
目的是为TimeRange构造函数方法实现单元测试,这将有助于确保异常在某个时刻抛出
如果在这种情况下正确获取时间对象的模拟(没有获得模拟意大利面)?
答案 0 :(得分:0)
模拟创作可能会变得非常复杂。在生产代码中,复杂的任务由专门的类或模块处理。在这种情况下,它是相同的。您可以而且应该在类中抽象存根和模拟创建。这些类应该是测试套件的一部分。
以你的情况为例。你可以让一个类返回一个#texto h1 {
margin:auto;
line-height:51px;
position: absolute;
left: 50%;
transform: translate(-50%, -100%);
vertical-align:middle;
color: #FFFFFF;
font-size: 75px;
}
对象,用一小时,分钟,秒来初始化:
Time
以下是相关部分的XUnit Design模式书的链接。有很多模式只是为了创建模拟: