В будущем я бы рекомендовал ответить Eran Harel (рефакторинг перемещения new
на завод, который можно издеваться). Но если вы не хотите менять исходный код, используйте очень удобную и уникальную функцию: шпионы. Из документации :
Вы можете создавать шпионы реальных объектов. Когда вы используете шпиона, тогда вызываются реальные методы (если только метод не был заглушен).
Настоящие шпионы следует использовать осторожно и иногда, например, при работе с устаревшим кодом.
blockquote>В вашем случае вы должны написать:
TestedClass tc = spy(new TestedClass()); LoginContext lcMock = mock(LoginContext.class); when(tc.login(anyString(), anyString())).thenReturn(lcMock);
В основном ViewModel является оберткой вокруг модели. Теперь, когда еще не могло бы быть очень полезным:-), Думают о модели как о данных Ваши работы приложения с, говорит человек. Теперь у человека есть день рождения, и Вы могли бы хотеть иметь форму для ввода дня рождения человека. Предположим, что мы просто используем простой TextBox, дата разоблачает что-то как 02.01.2009 0:00:00. Для начинающих мы не хотим часть времени, и мы также не могли бы быть к довольному 02.01.2009 частями, поскольку это зависит от Ваших настроек локали.
, Таким образом, здесь ViewModel приезжает im. Это обертывает класс Человека и представило дату как три целочисленных значения, год, месяц и день. В наборе свойств это пытается создать дату из различных значений и отображает любые ошибки, которые могли бы произойти.
так так сказал, что ViewModel является Образцовой оберткой, конкретно приспособленной к конкретному представлению (дисплей). Это устраняет большую часть IValueConvertors одновременно.
у Josh Smith есть хорошее объяснение здесь: http://joshsmithonwpf.wordpress.com/2008/11/14/using-a-viewmodel-to-provide-meaningful-validation-error-messages и большое обсуждение здесь: http://groups.google.com/group/wpf-disciples/browse_thread/thread/3fe270cd107f184f?pli=1
У Nikhil Kothari есть сообщение о том, как использовать тот шаблон с его Silverlight. Библиотека FX. Проверьте его здесь: http://www.nikhilk.net/ViewModel-Pattern-DLR.aspx
Prism 4.0 теперь включает документацию по созданию MVVM-приложений. Она предназначена для использования библиотек Prism, но концепции работают для паттерна MVVM в целом.