xUnit is great! If you haven’t used it yet it really is well worth the time to explore and get to grips with. I was recently creating some Serialization tests using the WCF DataContractSerializer. In order to make sure the test were all as I wanted/expected and to have a clean slate between each serialization test it is prudent to ensure the files generated by the tests are cleaned up afterwards. Here is a little class that provides exactly this through the use of a custom attribute. This also means that your test code isn’t polluted with unneccessary code clutter … neat!
Here is the class:
public class SerializationCleanupAttribute : BeforeAfterTestAttribute
{
public readonly string FileToCleanUp;
public SerializationCleanupAttribute(string fileToCleanUp)
{
FileToCleanUp = fileToCleanUp;
}
public override void Before(System.Reflection.MethodInfo methodUnderTest)
{
if (File.Exists(FileToCleanUp))
{
File.Delete(FileToCleanUp);
}
}
public override void After(System.Reflection.MethodInfo methodUnderTest)
{
if (File.Exists(FileToCleanUp))
{
File.Delete(FileToCleanUp);
}
}
}
Here is a test using the class:
[Fact]
[SerializationCleanup(FileName)]
public void TestClientConfigSerialization()
{
ClientEndpointConfiguration config = new ClientEndpointConfiguration();
config.CloseTimeout = new TimeSpan(0, 10, 0);
config.EndpointName = "Default";
config.EndpointNamespace = "http://jammer.biz/namespace/test/";
config.StoreToDisk(FileName);
Assert.True(File.Exists(FileName));
}
xUnit is great! If you haven’t used it yet it really is well worth the time to explore and get to grips with. I was recently creating some Serialization tests using the WCF DataContractSerializer. In order to make sure the test were all as I wanted/expected and to have a clean slate between each serialization test it is prudent to ensure the files generated by the tests are cleaned up afterwards. Here is a little class that provides exactly this through the use of a custom attribute. This also means that your test code isn’t polluted with unneccessary code clutter … neat!
Here is the class:
Here is a test using the class: