是否有类似于Moq中的SetupGetSequence的东西

时间:2017-04-14 12:17:13

标签: c# unit-testing moq

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?

注意:我没有编写我正在嘲笑的界面或服务,因此我无法更改它。

1 个答案:

答案 0 :(得分:3)

使用SetupSequence排序返回值也适用于属性getter:

mock.SetupSequence(m => m.PropertyName).Returns(1).Returns(2).Returns(3);

注意:您可以使用Setup而不是SetupGet,因为Moq检查给定lambda表达式的主体是否属性并在内部调用SetupGet { {3}}。所以你唯一的好处是跳过这个内部检查。