2017-02-17 66 views
0

我創建了一個應用程序Xamarin.Forms即使用領域來存儲信息。Xamarin用戶界面/單元測試與領域

我想編寫一些測試來檢查我的應用程序中的註銷功能是否正常工作,並且領域是空的數據。

在一個單獨的解決方案中,我安裝了Realm 0.82.1軟件包並創建了對PCL解決方案的引用以引用模型以開始測試。

當改變一個異常被拋出,因爲需要遷移模型:

public static class RealmHelper { 
    public static Realm GetInstance() { 
     var config = new RealmConfiguration(Constants.REALM_FILE); 
     try { 
      return Realm.GetInstance(config); 
     } catch (Exception e) { 
      Debug.WriteLine(e.Message); 
      Realm.DeleteRealm(config); // Error Thrown here 
      return Realm.GetInstance(config); 
     } 
    } 
} 

但引發此錯誤

System.PlatformNotSupportedException:境界PCL構建被 鏈接這可能意味着您需要使用NuGet或以其他方式將 特定於平臺的Realm.dll鏈接到主應用程序。

我的測試

[Test] 
public void CanInitDB() { 
    Assert.DoesNotThrow(() => 
    { 
     new DataAccessController(); 
    }); 
} 

我的控制器使用PCL版本,沒有一個具體的平臺,對應

public class DataAccessController { 
    static Realm realm; 

    public DataAccessController() { 
     realm = RealmHelper.GetInstance(); 
    } 

    //... 
} 
+0

https://github.com/realm/realm-dotnet/issues/1059 – SushiHangover

回答

0

境界不支持。你可以做的是使用Xamarin's built-in test runners這將產生一個應用程序,你可以用它來在設備/模擬器上執行測試。這有點不方便,但應該完成工作。

+0

我實際上按照這個指南來設置我的測試。但我仍然收到錯誤: '預期:沒有例外將被拋出 但是:(Realm的PCL構建正在被鏈接,這可能意味着您需要使用NuGet或以其他方式將平臺特定的Realm.dll鏈接到您的主應用程序)。' 如何鏈接測試套件中特定於平臺的dll? – Harry

+0

您需要從測試運行器項目中引用Realm nuget。 –