Tôi đang trải qua một ứng dụng và thêm Bài kiểm tra Đơn vị. Ứng dụng này được viết bằng bảng phân cảnh và hỗ trợ iOS 6.1 trở lên.Kiểm tra nếu performSegueWithIdentifier được gọi trong phương thức bộ điều khiển chế độ xem
Tôi đã có thể kiểm tra tất cả các phương thức trả lại thông thường mà không gặp vấn đề gì. Tuy nhiên tôi hiện đang bối rối với một thử nghiệm nào đó tôi muốn thực hiện:
Về cơ bản tôi có một phương pháp, cho phép gọi nó là doLogin:
- (IBAction)doLogin:(UIButton *)sender {
// Some logic here
if (//certain criteria to meet) {
variable = x; // important variable set here
[self performSegueWithIdentifier:@"memorableWord" sender:sender];
} else {
// handler error here
}
Vì vậy, tôi muốn kiểm tra rằng một trong hai segue được gọi và rằng biến được thiết lập, hoặc bộ điều khiển xem MemorableWord được nạp và các biến trong đó là chính xác. Biến được đặt ở đây trong phương thức doLogin được chuyển qua bộ điều khiển xem đích đến đáng nhớ trong phương thức prepareForSegue.
Tôi đã thiết lập và hoạt động OCMock và tôi cũng đang sử dụng XCTest làm khung kiểm tra đơn vị của mình. Có ai đã có thể sản xuất một bài kiểm tra đơn vị để bao gồm một tình huống như vậy ??
Dường như Google và SO khá trống về thông tin xung quanh khu vực này .. rất nhiều ví dụ về các thử nghiệm cơ bản đơn giản không liên quan đến thực tế phức tạp hơn trong thử nghiệm iOS.
Xin cảm ơn, nhưng đây chính xác là những gì tôi đang muốn làm. Tôi đang cố gắng thử nghiệm phương thức doLogin mà không cần và phụ thuộc vào bất kỳ thứ gì khác. ví dụ, như một trong các bài kiểm tra của tôi, tôi muốn đảm bảo rằng phương thức sẽ thực sự gọi hàm performSegueWithIdentifier khi các tiêu chí được đáp ứng. Tôi cũng sẽ kiểm tra xem lỗi có được xử lý đúng khi không. Vấn đề của tôi là tìm ra thời tiết hay không performSegueWithIdentifier được gọi hay không .. bất kỳ ý tưởng về điều này? – Rob
+1 cho lời giải thích hợp lý về sự khác biệt giữa CNTT một UT, tôi chắc chắn người dùng ít quen thuộc với khái niệm này sẽ thấy nó hữu ích! :) – Rob
OCMock có một phương pháp như xác minh hoặc từ chối chính xác cho loại mục đích này. Với xác minh bạn có thể đảm bảo rằng một phương thức đã được gọi và thông qua từ chối, bạn có thể đảm bảo rằng một phương thức KHÔNG được gọi. Hãy nhớ rằng trong trường hợp của bạn, bạn có thể cần phải sử dụng một phần giả và rằng việc sử dụng nhiều phần giả mocks có thể là dấu hiệu của thiết kế ứng dụng xấu – Alexander