फेंकने के लिए मैं निम्नलिखित परीक्षण कोड है:राइनो मोक्स त्रुटि: पिछली विधि 'IENumerator.MoveNext();' एक वापसी मान या एक अपवाद की आवश्यकता है
parentViewModel = MockRepository.GenerateMock<IParentViewModel>();
parentViewModel.Expect(x => x.GetPropertyValue<IEnumerable<Milestone>>("JobMilestones")).Return(new Milestone[0]);
viewModel = new JobPenaltiesViewModel(j, new Penalty[0], _opContext, parentViewModel);
Assert.That(viewModel.Milestones.Count(), Is.EqualTo(0));
parentViewModel.VerifyAllExpectations();
List<string> propsChanged = new List<string>();
viewModel.PropertyChanged += (s, e) => propsChanged.Add(e.PropertyName);
parentViewModel.Raise(x => x.PropertyChanged += null, parentViewModel, new PropertyChangedEventArgs("JobMilestones"));
AssertPropertiesChangedAsExepected(propsChanged, 1, "Milestones");
Milestone m1 = GenerateMilestone(j);
List<Milestone> milestones1 = new List<Milestone> { m1 };
parentViewModel.Expect(x => x.GetPropertyValue<IEnumerable<Milestone>>("JobMilestones")).Return(milestones1).Repeat.Any();
IEnumerable<Milestone> milestones = viewModel.Milestones;
Assert.That(milestones.Count(), Is.EqualTo(1));
parentViewModel.VerifyAllExpectations();
सभी परीक्षणों और कथनों तक सफल हो:
Assert.That(milestones.Count(), Is.EqualTo(1));
है वहीं मुझे अपवाद:
Previous method 'IEnumerator.MoveNext();' requires a return value or an exception to throw.
मैंने जो कुछ भी सोच लिया है, मैंने कोशिश की है, और मेरा परीक्षण यह इंगित करता है कि पैरेंट व्यू मॉडेल मॉक शून्य या एक एमएम वापस आ रहा है पीटीई गणना (यानी जब मैं लौटा हुआ मूल्य का निरीक्षण करने के लिए डीबगर का उपयोग करता हूं तो 'परिणाम देखें' कहता है कि गणना ने कोई परिणाम नहीं दिया)।
मुझे यहां क्या याद आ रही है?
यदि आप ऐसा करने का प्रयास करते हैं तो आपको सही परिणाम मिलते हैं: 'IENumerable मील का पत्थर = parentViewModel.Milestones;' और 'Assert.That (milestones.Count(), Is.EqualTo (1))'? (बस सत्यापित करें कि आपने एम 1 कहाँ खोला है) –
steenhulthin
नहीं, 'Assert.That (मील का पत्थर। काउंटर(), Is.EqualTo (1))' अपवाद का स्रोत है। मैं कभी भी 'parentViewModel.VerifyAllExpectations() ' – CodingGorilla
पर नहीं जाता, ठीक है, मैं यह स्पष्ट नहीं था कि मेरा क्या मतलब था। मेरा मतलब था कि 'parentViewModel.Expect (x => x.GetPropertyValue> ("जॉबमिलेस्टोन") के बाद लाइनों को जोड़ना)। वापसी (मील का पत्थर 1)। दोहराएं।कोई भी(); 'इसलिए आप' viewModel' पर जोर देने से पहले 'parentViewModel' पर जोर देते हैं।' यह सत्यापित करने के लिए कि 'm1' 'parentViewModel.JobMileStones' में है (मैंने पहली टिप्पणी में parentViewModel.MileStones लिखा - मेरा बुरा।)। –
steenhulthin