2015-04-05 42 views
3

測試共享代碼我有3個項目一個Xamarin溶液:如何Xamarin

  • 的Android
  • 的iOS
  • 共用

共享由含有所有的共享邏輯共享項目。例如。使用sqlite-net進行數據庫訪問,使用restsharp進行其他調用。

我想測試Shared中的代碼。

我創建了一個NUnit庫項目並在其中創建了一個測試。

現在項目無法編譯,因爲它找不到共享項目需要的dll。

這些DLL沒有被Shared直接引用。例如,Android項目引用了sqlitenet.dll的android版本。

如何測試共享代碼?

回答

3

共享項目只是一個鏈接文件的容器,或者換言之,共享項目不直接有任何引用,而是獲取引用它的項目所引用的任何引用。

如果您有一個引用共享項目的iOS和Android項目,爲了正確地對所有可能的代碼路徑進行單元測試,您需要引用共享項目的單元測試項目的Android和iOS版本,並引用共享項目需要,比如SqLite並定義任何需要的編譯常量。

如果代碼在iOS和Android單元測試(可能是這樣)之間部分相同,則可以使用共享項目來共享該代碼。

+0

所以共享測試項目應該是一個「普通」的共享項目,對吧?而iOS和Android測試項目每個都使用不同的測試庫。我能在共享測試中使用nunit(屬性)和moq嗎? – daramasala 2015-04-06 10:46:10

+0

是的,共享項目只是鏈接文件的容器。它本身並不是一個編譯實體,其中的所有文件都被編譯到共享項目的任何引用中。你將不得不參考正確的單元測試庫; nunitLite可用。 – 2015-04-06 12:07:48

+0

http://developer.xamarin.com/guides/ios/deployment,_testing,_and_metrics/touch.unit/另外,對於iOS來說,模擬可能有些困難,因爲像Moq這樣的框架需要的JIT在物理iOS設備上不可用。 – 2015-04-06 12:11:02