A unit test generation extension for Visual Studio that aims to always produce code that compiles - covering the basic cases automatically and preparing as much as it can for the complex cases.
Get the extension from the Visual Studio Marketplace:
Alternatively see the releases on GitHub:
Demonstrates how test values are produced to initialize POCO members when the type is consumed
public class SomePoco
{
public int Identity { get; set; }
public string Description { get; set; }
public Guid UniqueCode { get; set; }
}
public class ConsumingClass
{
SomePoco _poco;
public ConsumingClass(SomePoco poco)
{
_poco = poco;
}
public SomePoco Poco => _poco;
}
public class ConsumingClassTests
{
private readonly ConsumingClass _testClass;
private SomePoco _poco;
public ConsumingClassTests()
{
_poco = new SomePoco
{
Identity = 534011718,
Description = "TestValue237820880",
UniqueCode = new Guid("97408286-a3e4-cf95-ff46-699c73c4a1cd")
};
_testClass = new ConsumingClass(_poco);
}
[Fact]
public void CanConstruct()
{
// Act
var instance = new ConsumingClass(_poco);
// Assert
instance.Should().NotBeNull();
}
[Fact]
public void CannotConstructWithNullPoco()
{
FluentActions.Invoking(() => new ConsumingClass(default(SomePoco))).Should().Throw<ArgumentNullException>().WithParameterName("poco");
}
[Fact]
public void PocoIsInitializedCorrectly()
{
_testClass.Poco.Should().BeSameAs(_poco);
}
}