我在Visual Studio for Mac中設置了一個TestProject,它引用了我的Xamarin Forms項目,用於測試我的代碼的非可視部分。Xamarin單元測試Xamarin.Auth的便攜式誘餌和開關錯誤?
但是,當我嘗試測試一段利用Xamarin.Auth訪問鑰匙串的代碼時,出現以下錯誤。
System.NotImplementedException :
Portable Bait And Switch is nuget feature, so the package must be installed in all project.
NotImplementedException will indicate that Portable Code from PCL is used and not Platform Specific
implementation. Please check whether platform specific Assembly is properly installed.
Cannot save account in Portable profile - bait-and-switch error.
Please file a bug in https://bugzilla.xamarin.com
此代碼工作在iOS模擬器罰款運行,我認爲它是與xamarin身份驗證的方式充分利用了IOS鑰匙串中不存在在這個測試項目。我試圖在引用中添加我的ios解決方案,但我無法在我的測試項目的「編輯引用」中這樣做。項目引用對話框不會允許它:
這是我的PCL失敗的代碼。
AccountStore store;
store = AccountStore.Create();
顯然,這與AccountStore.Create()麻煩
這裏是testcode類調用PCL:
using System;
using NUnit.Framework;
using CrowdWisdom;
using CrowdWisdom.Authentication;
namespace CrowdWisdomTest
{
[TestFixture()]
public class AuthServiceTest
{
[Test()]
public void SaveRestoreSecret()
{
String secret = "ABCD";
AuthService auth = AuthService.GetInstance();
auth.putSecret("MySecret", secret);
Assert.AreEqual(secret, auth.GetSecret("MySecret"));
}
}
}
Xamarin.Auth使用平臺特定的API,所以你要麼需要使用特定於平臺的設備亞軍(NUnit的和的xUnit有iOS和Android基於亞軍),或者嘲笑你的授權過程,所以你可以在沒有基於非平臺的NUnit亞軍的情況下進行測試。 – SushiHangover