PackagesModel.UnitTypeList我有一個簡單的 WCF 服務,它向我的 ASP.NET MVC 4 控制器回傳一個串列
[HttpGet]
public ContentResult GetUnitType()
{
List<PackageModelUnitTypeList> _result = lms_client.GetUnitType().ToList();
return cmn.SerializeToJSON(_result);
}
這是我的測驗,它將我的服務的回傳串列偽造給控制器。
[TestMethod]
public void should_GetUnitType()
{
// Arrange
int expected_status_code = (int)HttpStatusCode.OK;
int expected_list_count = 5;
var context = new ControllerContext(new RequestContext(httpContext, new RouteData()), _controller_Packages);
_controller_Packages.ControllerContext = context;
// Act
A.CallTo(() => _lms_service.GetUnitType())
.Returns(new PackageModelUnitTypeList[]{
new PackageModelUnitTypeList(),
new PackageModelUnitTypeList(),
new PackageModelUnitTypeList(),
new PackageModelUnitTypeList(),
new PackageModelUnitTypeList()
});
var _getUnitType = _controller_Packages.GetUnitType() as ContentResult;
List<PackageModelUnitTypeList> _result = JsonConvert.DeserializeObject<List<PackageModelUnitTypeList>>(_getUnitType.Content);
// Assert
Assert.AreEqual(expected_list_count, _result.Count);
}
我對 FakeItEasy 的
下面是我的實作:
A.CallTo(() => _lms_service.GetUnitType())
.Returns(A.CollectionOfFake<PackageModelUnitTypeList>(5));
有人可以幫助確定為什么會發生這種情況以及如何使其作業嗎?任何幫助,將不勝感激。謝謝。
更新
根據@Blair Conrad 的回答,這就是它的樣子。我除錯了測驗,它確實根據我想要的數字回傳了偽造的串列:
A.CallTo(() => _lms_service.GetUnitType())
.Returns(Enumerable.ToArray(A.CollectionOfFake<PackageModelUnitTypeList>(1000)));
這就是我需要的。謝謝您的幫助!
uj5u.com熱心網友回復:
它看起來像_lms_service.GetUnitType()回傳一個PackageModelUnitTypeList[].
A.CollectionOfFake<PackageModelUnitTypeList>回傳一個IList<PackageModelUnitTypeList>. 您可以通過呼叫Enumerable.ToArray進行轉換,很可能。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/515454.html
標籤:wcf测试假易易
