![](/img/trans.png)
[英]How can I use .NET Core FirebaseAdminSdk for Unit Testing with Moq
[英]How do I mock UserRecord internal class for Firebase unit testing with Moq
I want to write a unit test in C# using Moq for my code using Firebase SDK and specifically involving GetUserAsync(), eg UserRecord user = GetUserAsync(Uid) but am getting stuck on the Firebase UserRecord internal class. 鑒於 UserRecord class 具有只讀內部結構,我如何模擬它進行測試?
到目前為止我已經嘗試過:
var firebase = new Mock<IFirebaseAppWrapper>();
firebase
.Setup(x => x.GetUserAsync(It.IsAny<string>()))
.Returns<UserRecord>(usr =>
{
var item = new Mock<UserRecord>("1");
return Task.FromResult(item.Object);
});
當然這不起作用,但感覺很接近。 有什么建議嗎? 順便說一句:FirebaseApp 已通過 class 人為包裝,並具有對應的接口 class。
謝謝
您應該使用ReturnsAsync
方法而不是Returns
。
Returns
用於同步方法。 另一方面,如果您希望在等待調用后指定async
方法的響應,則需要ReturnsAsync
。
編輯:
如果GetUserAsync
返回一個UserRecord
那么你可以實例化一個:
firebase
.Setup(x => x.GetUserAsync(It.IsAny<string>()))
.ReturnsAsync(new UserRecord("id"));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.