Answered Error when unit testing string was not stubbed

  • Thursday, September 13, 2012 11:03 AM
     
      Has Code

    Hi,

    I'm new to unit testing and not sure why I'm getting this error any ideas..?

    SIDirectoryAccessor.i: IDirectoryAccessor.Exists(string) was not stubbed

    I have mocked out the classes and now I am wanting to unit test. The method I would like to unit test is below:

    public bool createDirectoryStructure(out string _createDirectoryStructureMessage)
            {
                _directoryStructureCreated = (!_directoryAccessor.Exists(_settingAccessor.GetSetting<string>("TargetInstallationFolderPath")));
                
                if (_directoryStructureCreated)
                {
                    _createDirectoryStructureMessage = "Creating Directory";
                    _directoryAccessor.Create(_settingAccessor.GetSetting<string>("TargetInstallationFolderPath"));
                    _directoryAccessor.Create(_settingAccessor.GetSetting<string>("LogFileLocation"));
                    return false;
                }
                else
                {
                    
                    _createDirectoryStructureMessage = "Directory Exists";
                    return true;
                
                }
            }

    My Unit test is below:

     [TestMethod]
            public void TargetLocationFolderAlreadyCreated()
            {
                SIDirectoryAccessor dirstub = new SIDirectoryAccessor();
                SISettings setstub = new SISettings();
    
                InstallController controller = new InstallController(null, dirstub, null, null, setstub, null, null, null, null);
    
                setstub.GetSettingString<string>((settingName) => "TargetInstallationFolderPath");
    
                string expectedMessage = "Directory Exists";
                string actualMessage = string.Empty;
    
                Assert.IsTrue(controller.createDirectoryStructure(out actualMessage));
                Assert.AreEqual(expectedMessage, actualMessage);
            }

    Don't understand why the error display as I have added the code below, it compiles fine but doesn't run successfully..

     setstub.GetSettingString<string>((settingName) => "TargetInstallationFolderPath");

    Can someone please explain what I'm doing wrong..?

    Thanks


All Replies

  • Thursday, September 13, 2012 1:15 PM
     
     Answered Has Code

    had to stub out

    _directoryAccessor.Exists

    dirstub.ExistsString = (path) => true

    this resolved the issue

    • Marked As Answer by Taus Thursday, September 13, 2012 1:15 PM
    •