2015-09-29 25 views
8

Tôi muốn thêm các đối tượng giả để thử nghiệm trong dự án, nhưng tôi không muốn chúng được đưa vào bản dựng cuối cùng của tôi. Vì vậy, tôi có lớp AppDelegate của tôi và có nhập khẩu:Thêm đối tượng giả vào dự án

#ifdef TESTING 
#import "DummyBeaconLocationManager.h" 
#else 
#import "BeaconLocationManager.h" 
#endif 

Và sau:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
... 
#ifdef TESTING 
    [[DummyBeaconLocationManager sharedInstance] startRanging]; 
#else 
    self.beaconLocationManager = [BeaconLocationManager sharedInstance]; 
    [self.beaconLocationManager startRanging]; 
#endif 
    return YES; 
} 

Nhưng vấn đề là tôi phải bao gồm này trong Target Membership, không mục tiêu thử nghiệm của tôi của tôi. Có cách nào để không bao gồm các tệp này trong mục tiêu chính của tôi không, nhưng chỉ trong mục tiêu Test?

Chỉnh sửa: Việc cần làm là kiểm tra ứng dụng của tôi sau khi khởi chạy. Tôi muốn thử nghiệm nó trên giả lập nhưng ứng dụng bằng cách sử dụng đèn hiệu. Vì vậy, tôi đã tạo các đối tượng giả đại diện cho đèn hiệu và mô phỏng trình quản lý vị trí. Khi ứng dụng bắt đầu với tùy chọn TESTING, nó không bắt đầu từ nhiều ngọn hải đăng nhưng đặt một đối tượng giả như một ngọn hải đăng thay thế.

+0

Bạn không giải thích lý do tại sao bạn cần đối tượng thử nghiệm tạo ra trong đại biểu ứng dụng của bạn vì vậy tôi không chắc chắn nếu điều này sẽ giúp nhưng nó có thể như vậy: http://qualitycoding.org/app-delegate-for-tests/ –

+1

Bạn có thể đặt mục tiêu cụ thể cho thử nghiệm của mình không? –

+0

Tôi không hiểu - mục tiêu thử nghiệm vẫn chạy các phương thức AppDelegate đúng không? Tôi có một mục tiêu thử nghiệm nhưng ứng dụng phải khởi chạy bằng cách nào đó – Kuba

Trả lời

7

Khi bạn làm theo các bước này, bạn sẽ có thể thêm các lớp thử nghiệm có chức năng kiểm tra vào bản dựng của bạn. Để chạy ứng dụng của bạn bằng chức năng kiểm tra, bạn nên chọn lược đồ Thử nghiệm được cấu hình bên dưới.

Xcode Cấu hình dự án (sử dụng Xcode 7.0.1)

Để cho phép nhập khẩu có điều kiện và chức năng có hiệu quả để thử nghiệm, bạn sẽ cần những nguyên liệu sau:

  1. Kiểm tra cấu hình
  2. Testing Target
  3. Sơ đồ thử nghiệm

Short Expla quốc gia của Đề án, Mục tiêu và Cấu hình Xây dựng

  • Đề án trỏ đến mục tiêu và cấu hình.
  • Mục tiêu có thể được định cấu hình với các cài đặt xây dựng khác nhau.
  • Có thể thêm cấu hình để phân nhánh các cài đặt xây dựng mục tiêu.

Dưới đây là các bước:

1. Duplicate Cấu hình để thử nghiệm

Với hồ sơ dự án được lựa chọn trong Navigator dự án, hãy làm theo các bước sau:

  1. Chọn mục tiêu dự án
  2. Chọn thông tin
  3. Chọn + để thêm một cấu hình

Duplicate a project configuration

  1. Chọn Duplicate "Debug" Cấu hình Duplicate "Debug" Configuration

  2. Đổi tên cấu hình mới, và kéo nó vào đặt hàng lại Rename project configuration and drag to re-order

2. Nhân đôi Mục tiêu để thử nghiệm

Bây giờ bạn có cấu hình thử nghiệm, hãy thêm mục tiêu thử nghiệm. Với tệp dự án được chọn trong trình điều hướng dự án, hãy thực hiện theo các bước sau:

  1. Nhấp chuột phải hoặc nhấp vào Tùy chọn hiện tại và chọn Sao chép. Duplicate an existing target

  2. Tap vào mục tiêu mới để đổi tên nó, sau đó kéo nó để sắp xếp lại các mục tiêu của bạn. Rename and drag new target

3. Quản lý Đề án

Bây giờ bạn có một mục tiêu thử nghiệm và cấu hình, bạn đã sẵn sàng để thêm một chương trình trỏ đến mục tiêu và cấu hình mới.

  1. Tap vào các đề án (bên cạnh nút stop), và chọn Manage Schemes ... Select Manage Schemes...

  2. Trong Đề án quản lý popup, nếu bạn đã chọn autocreate đề án, chương trình mới sẽ được liệt kê. Nếu không, bạn có thể nhấn + trong cửa sổ bật lên để thêm lược đồ. Mỗi chương trình có thể được chia sẻ, như ở đây: Configure new scheme

  3. Tap vào các chương trình mới để đổi tên nó, và kéo nó để sắp xếp lại: Rename and reorder schemes

  4. Để chỉnh sửa các chương trình mới, đảm bảo rằng nó được chọn và nhấn Chỉnh sửa ... Edit scheme

  5. Trong bảng chỉnh sửa, chọn cấu hình thử nghiệm xây dựng Select Testing build configuration

  6. Đảm bảo rằng các điểm chương trình với mục tiêu kiểm tra, bằng cách khai thác trên thực thi thả xuống: Point to Testing Target for Run action

  7. Đảm bảo rằng lược đồ đang trỏ đến cấu hình bản dựng chính xác, cho các tác vụ khác, chẳng hạn như Kiểm tra tự động: Point to Testing Target for Test action

4. Cấu hình các thiết lập xây dựng cho các mục tiêu

Bây giờ bạn có kế hoạch thử nghiệm của bạn thiết lập để trỏ đến cấu hình thử nghiệm của bạn, nó sẽ y hệt như cấu hình Debug, cho đến khi bạn sửa đổi xây dựng cài đặt. Làm theo các bước sau để thay đổi cài đặt bản dựng cho cấu hình Thử nghiệm của bạn:

  1. Đối với hầu hết các cài đặt xây dựng, có một tùy chọn cho mỗi cấu hình. Khi chọn mà cấu hình để sử dụng trong các thiết lập của bạn, đảm bảo mục tiêu chính được chọn: Select main target

  2. Các Preprocessor Macros dưới phần có tiêu đề 'Apple LLVM 7.0 - tiền xử lý': Preprocessor Macros

  3. Tap trên hàng, để chọn nó, hãy nhấn phím enter để chỉnh sửa và cam kết thay đổi của bạn, sử dụng các phím mũi tên để di chuyển lên hoặc xuống. Đó là một thực hành tốt để xác định tất cả các macro tiền xử lý của bạn cho tất cả các cấu hình, như thế này: Define preprocessor macros

5. Thêm một lớp với mục tiêu kiểm tra của bạn

Bây giờ, những điểm kiểm tra Đề án để một cấu hình hoạt động khác với cấu hình Gỡ lỗi của bạn. Bây giờ bạn có thể chọn lược đồ Thử nghiệm từ trình đơn thả xuống lược đồ và chạy cấu hình Thử nghiệm của bạn.

Bạn có thể sửa đổi thành viên mục tiêu của một lớp theo một trong hai cách.

  1. Khi bạn tạo một tập tin mới, bảng điều khiển thứ ba, nơi bạn có thể chọn vị trí, có các tùy chọn ở phía dưới, cho từng mục tiêu:

Choose target membership

  1. Khi bạn chọn một tập tin trong dự án Navigator của bạn, file Inspector có một bảng điều khiển thành viên Target, nơi bạn có thể làm thay đổi: Modify target membership

Đề án

Đề án thường được ghép nối để tạo cấu hình. Một thực hành tốt là có một lược đồ/cấu hình cho mỗi đối tượng cần một phiên bản khác nhau của bản dựng của bạn.Dưới đây là một số khán giả cơ bản mà thường cần cấu hình riêng biệt:

  • phát triển> DEBUG
  • phát triển> KIỂM TRA
  • Kiểm tra nội bộ> PHÁT TRIỂN
  • Xét nghiệm Beta/Production> APP STORE

subclassing

Nếu bạn muốn sửa đổi bất kỳ chức năng nào trong chế độ thử nghiệm, bạn có thể sử dụng phân lớp và chỉ thêm lớp con vào mục tiêu thử nghiệm của bạn.

0

Được rồi, nếu tôi đã làm đúng, bạn nên:

  • a) Tạo một mục tiêu riêng cho porposes thử nghiệm (như @Carl Veazey và @Rainer Schwarze đề nghị) với hầu hết các cơ sở mã tương tự như của bạn mục tiêu chính .
  • b) Tôi khuyên bạn nên giả mạo người quản lý vị trí và đèn hiệu của bạn
    đối tượng qua phân lớp từ BeaconLocationManager và YourBeacon
    (ví dụ). Sau đó, bạn chỉ cần ghi đè hành vi thực sự với các hành động cụ thể của trình mô phỏng
    .

Vào cuối ngày, mục tiêu thử nghiệm của bạn sẽ chỉ chứa 2 lớp nữa (trình quản lý báo hiệu mô phỏng và đèn hiệu mô phỏng) so với mục tiêu chính. Không có thay đổi bổ sung về cấu trúc dự án hoặc ngữ nghĩa mã được reuired. Chúc may mắn.

0

Tôi có thể thay đổi một cách dễ dàng là sai lầm về vấn đề này, nhưng tôi đoán điều này có thể làm việc:

Giống như khi sử dụng cocoapods, khi bạn tạo file pod bạn bỏ chọn mục tiêu (Tên dự án). Điều gì nếu bạn làm điều đó, sau đó chọn mục tiêu (NameTests Project)

enter image description here

+1

Nếu nó không nằm trong mục tiêu chính bạn không thể sử dụng trong mục tiêu chính, bạn không thể xác định hành vi khác nhau cho mục tiêu thử nghiệm và mục tiêu chính – Kuba

+0

@Kuba. Được rồi, điều đó có ý nghĩa. Tôi nghĩ rằng đã có một cái gì đó sai trái với nó. –

Các vấn đề liên quan