在class Crud
{
private $results;
private $db;
function selectAllJobs()
{
$sql="SELECT * from jobs";
$stmnt = $this->db->prepare($sql);
$stmnt->execute();
$this->results=$stmnt->fetchAll();
}
function displayResults()
{
$numargs = func_num_args();
echo "Number of arguments: $numargs \n";
$arg_list = func_get_args();
foreach ($this->results as $result) {
foreach ($arg_list as $index=>$value) {
echo $result[$index];
echo'<br />';
}
}
}
}
$obj = new Crud();
$obj->selectAllJobs();
$obj->displayResults('location', 'description', 'headline');
中,我知道有Moq
用于设置函数的顺序用法,并且SetupSequence
用于设置属性的值。
但是我需要按顺序设置属性。
有没有办法在SetupGet
设置顺序get?
注意:我没有编写我正在嘲笑的界面或服务,因此我无法更改它。
答案 0 :(得分:3)
使用SetupSequence
排序返回值也适用于属性getter:
mock.SetupSequence(m => m.PropertyName).Returns(1).Returns(2).Returns(3);
注意:您可以使用Setup
而不是SetupGet
,因为Moq检查给定lambda表达式的主体是否属性并在内部调用SetupGet
{ {3}}。所以你唯一的好处是跳过这个内部检查。