簡體   English   中英

Xamarin-單元測試應用程序(android)-定義用法

[英]Xamarin - Unit Test App (android) - defining usage

今天,我一直在為Xamarin Android應用查看單元測試應用(Android)

在此處輸入圖片說明

但是,由於缺少任何官方文檔和適當的解釋,我對如何實際使用此=> 進行測試尚無定論。

我了解,對於UI測試,我們具有UI測試應用程序 對於包含某些業務邏輯的PCL / Share類庫,我僅使用一個標准的NUnit項目。

“ Unit Test App(Android)項目是否打算用作:

  1. 如果我有一個“ Android類庫”,請在那里引用並測試其中包含的代碼?
  2. 引用一個Android項目,然后用一些魔法測試其中包含的代碼? (盡管我真的無法想象這將如何工作)
  3. 我沒想到的其他事情。

這是單元測試應用程序(Android)項目中一些測試的示例。 我希望您可以同意這是一個非常不確定的示例:

   [TestFixture]
    public class TestsSample
    {

        [SetUp]
        public void Setup() { }


        [TearDown]
        public void Tear() { }

        [Test]
        public void Pass()
        {
            Console.WriteLine("test1");
            Assert.True(true);
        }

        [Test]
        public void Fail()
        {
            Assert.False(true);
        }

        [Test]
        [Ignore("another time")]
        public void Ignore()
        {
            Assert.True(false);
        }

        [Test]
        public void Inconclusive()
        {
            Assert.Inconclusive("Inconclusive");
        }
    }

我想引用Xamarin的JohnathanPryor回答您的問題:

不要將應用程序項目添加到應用程序項目中; 通常情況下,您將無法正常工作。

代替...

因為不建議(至少在使用Wear項目支持之前)將Application項目作為對Application項目的項目引用添加(至少!),所以這從來不是對單元代碼進行單元測試的好方法。

因此,您應該做的是將要由單元測試項目使用的任何代碼放在Android庫(或PCL)項目中。 這將確保您正在測試的類型可以“正常”使用Android資源,使一切正常地按預期和期望運行,並且您真正關心的單元測試項目和Application項目都可以使用您的代碼。

再次引用該線程,可能的解決方案之一是

MyProj(解決方案)

  • MyProj(PCL)
  • MyProj.Android(默認Xamarin項目)
  • MyProj.Android.Shared(Android類庫)
  • MyProj.Android.Test>(Android單元測試應用程序)
  • MyProj.iOS(默認Xamarin項目)

其中MyProj.Android幾乎不包含任何內容,而MyProj.Android.Shared包含所有內容(活動/捆綁等),因此可以在Android單元測試中引用它們

要么

使用共享項目

基本上,Android單元測試項目具有其自己的UI,並允許您在實際平台(即,實際的Android設備或模擬器)上執行時運行單元測試。 用戶界面非常簡單,突出顯示可以啟動單元測試並查看結果。 是的,您可以引用一個Android類庫,我也可以想象一個Android應用程序項目。

這是一篇關於該主題的好博客文章: https : //medium.com/@_kbremner/automating-android-unit-tests-with-xamarin-6058d101eb97#.5t77lbvzd

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM