Hi Dan,

I agree with Ben here in that mocking is the way to go if your not I-Testing
as your want to abstract away from the physical. If your dealing with code
that is not easily mocked (lack of interfaces, sealed classes etc) then
TypeMock (does cost $$) is a very useful tool.

Andy

On 10/8/07, Ben Hall <[EMAIL PROTECTED]> wrote:
>
>
> I would have to say, mocking would be the best approach here.
> Abstract away from Directory (IFileManager).
>
> I find that IFileManager.WriteStream(Stream s, string Path) to be a
> nice method for dealing with this kind of stuff and then that hides
> the internal byte writer while loop and makes it easy to mock.
>
> But then it depends if your doing integration / unit testing :).
>
> Ben
>
> On 08/10/2007, hmobius <[EMAIL PROTECTED]> wrote:
> >
> > Hi,
> >
> > How would you go about unit testing a simple FTP library with commands
> > in it such as Upload, Download, RenameRemoteFile etc? I can't think of
> > a good way to set up a test class that doesn't rely on my already
> > having set up a FTP account in the right place. Is mocking the way to
> > go?
> >
> > At the moment, I'm running on this code, but the TearDown routines are
> > failing because the local file I've created is "being used by another
> > process" when they are called. I'm guessing that the issue is I'm
> > trying to delete a file before the setup routine has released it, but
> > any thoughts you might have would be appreciated.
> >
> > Dan
> >
> > -- Error
> >
> > TestCase 'FtpConnectionTests.Setup.Test.TearDown'
> > failed: The process cannot access the file 'D:\CodeSVN\dotCoop2.0\Code
> > \Common\UnitTests\bin\Debug\ftptests\localftptest.txt' because it is
> > being used by another process.
> >        System.IO.IOException
> >        Message: The process cannot access the file 'D:\CodeSVN
> > \dotCoop2.0\Code\Common\UnitTests\bin\Debug\ftptests\localftptest.txt'
> > because it is being used by another process.
> >        Source: mscorlib
> >        StackTrace:
> >        at System.IO.__Error.WinIOError(Int32 errorCode, String
> > maybeFullPath)
> >        at System.IO.File.Delete(String path)
> >        D:\CodeSVN\dotCoop2.0\Code\Common\UnitTests
> > \FtpConnectionTests.cs(55,0): at
> > Mcd.Common.FtpConnectionTests.TearDown()
> >
> > -- Code
> >
> >      [TestFixtureSetUp]
> >      public void FixtureSetup()
> >      {
> >         //Create directory for local files
> >         Directory.CreateDirectory(LocalDirectory);
> >      }
> >
> >      [SetUp]
> >      public void Setup()
> >      {
> >         //Create file for uploading
> >         File.Create(Path.Combine(LocalDirectory, LocalFileName));
> >         FileAssert.Exists(Path.Combine(LocalDirectory,
> > LocalFileName));
> >      }
> >
> >      [Test]
> >      public void Test()
> >      {
> >         Console.WriteLine("Into the test");
> >      }
> >
> >      [TearDown]
> >      public void TearDown()
> >      {
> >         //Delete file
> >         File.Delete(Path.Combine(LocalDirectory, LocalFileName));
> >         FileAssert.NotExists(Path.Combine(LocalDirectory,
> > LocalFileName));
> >      }
> >
> >      [TestFixtureTearDown]
> >      public void FixtureTearDown()
> >      {
> >         //Delete directory for local files and any files left in it.
> >         Directory.Delete(LocalDirectory, true);
> >      }
> >
> >
> > >
> >
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"MbUnit.User" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/MbUnitUser?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to