Używam MOQ do fałszywe wywołanie metody z oczekiwaną listę zwrotów. Moja metoda zwraca listę, ale chcę, aby próbka tworzyła nową listę za każdym razem, gdy metoda zostanie wywołana. Co zrobiłem do tej pory:Jak wykonać Mock zwrócić nową listę za każdym razem, gdy metoda jest wywoływana za pomocą Moq
List<Correlation> expected = new List<Correlation> { new Correlation() { Code = "SelfError1" }, new Correlation() { Code = "SelfError2" } };
Mock<IRPLValidator> selfMock = new Mock<IRPLValidator>();
selfMock.Setup(f => f.Validate()).Returns(expected);
Co staram się osiągnąć to, aby mock powrót nowa lista każdym razem metoda get wywołana. Próbowałem to, ale nie działa:
selfMock.Setup(f => f.Validate()).Returns(new List<Correlation>{ new Correlation() { Code = "SelfError1" }, new Correlation() { Code = "SelfError2" } });
Jak to nie działa, myślę, że może oddzwaniania jest odpowiedź na moje pytanie, ale nie mogę znaleźć żadnego odpowiedniego przykład dla reinicjalizacji moją listę . Jakieś sugestie?
Jak możesz się zastanawiać, dlaczego potrzebuję nowej listy za każdym razem, problem polega na tym, że wywołuję metodę na różnych typach obiektów, wprowadzając pewne zmiany na liście, w zależności od typu obiektu. Ponieważ mock daje mi tę samą listę za każdym razem, gdy wywoływana jest ta metoda, zawsze modyfikuję ten sam obiekt w pamięci, więc nie mogę śledzić zmian, które na nim robię.
Z góry dziękuję!
Pracował jak urok! Wielkie dzięki. To było takie łatwe. –
Dziękuję - pewnego dnia dostanę to całe zamknięcie. – David
Żałuję, że nie znalazłem tego wcześniej, zmarnowałem dzień wczoraj zastanawiając się, dlaczego moja lista nie powróciła zaktualizowana! Dzięki!!! – PmanAce