I have unit test initialization:
private App fakeApp;
[TestInitialize]
public void initialize()
{
Mock<App> mock = new Mock<App>();
fakeApp = mock.Object;
mock.Setup(m => m.CommLineInfo.Mode).Returns(RunMode.INSTALL);
}
where app is WPF main class:
public partial class App : Application
{
public static CommandLine CommLineInfo { get; private set; }
}
where underlining object is just:
public class CommandLine
{
public RunMode Mode
{
get { return Something.Mode; }
}
}
and I'm getting errors like in topic. I know it could look like duplicate but I read other questions and didn't find any solution connected with mocking objects
Edit:
As Hantoun suggested I needded to make wrapper:
public virtual RunMode RunMode
{
get
{
return App.CommLineInfo.Mode;
}
}
and modify my code in initialization:
public void initialize()
{
Mock<AppWrapper> mock = new Mock<AppWrapper>();
fakeApp = mock.Object;
mock.Setup(m => m.RunMode).Returns(RunMode.INSTALL);
}
Now its needed to modify method I'm testing but at least its working