2015-08-20 20 views
7

Şu anki iOS uygulamasında MVVM paradigmasını kullanıyorum. Son zamanlarda, proje ile ReactiveCocoa kullanmaya başladım. Şimdi de Unit testing ile deneme yapmaya geçtim.XCTest ile RACSignals'ı sınama

Karşılaştığım sorun, oluşturduğum özel RACSignal s doğru şekilde nasıl test edileceğidir. İşte test ettiğim bir test sinyalinin bir örneği. Bu sinyal bir UItextField ile kullanılır ve textField'a istenmeyen karakterler girilmesini durduracaktır. Bu durumda, sadece sayıları izin ediyorum:

//Declared like so: 
-(RACSignal *)onlyAllowNumbersforTextFieldSignal:(RACSignal *)signal 

//used like this: 
RAC(testTextField, text) = [self.viewModel onlyAllowNumbersforTextFieldSignal:testTextField.rac_textSignal]; 

Şimdi sinyal viewModel ve viewController mükemmel çalışıyor - Ben şimdi sadece sinyallerin bu tür bir test case oluşturmak istiyorum.

cevap

1

Bir giriş sinyali sağlamak için (metin alanının yerine) +[RACSignal return:] yöntemini kullanabilirsiniz. Daha sonra, görünüm modelinden çıkış sinyalinin değerini almak için -first yöntemini kullanın:

- (void)testExample { 
    RACSignal *textSignal = [RACSignal return:@"a123"]; 
    //assuming that you initialized self.viewModel in setUp method of your test case 
    NSString *result = [[self.viewModel onlyAllowNumbersforTextFieldSignal:textSignal] first]; 
    XCTAssertEqualObjects(result, @"123"); 
} 
+0

Bunun için çok teşekkür ederim. Test senaryoları ile devam etmek için biraz zaman geçtikten hemen önce vereceğim. Keşke sana ödül verebilseydim! Bunu tamamen test ettikten sonra da güncellenecektir. – Tander

İlgili konular