I am working with a class that has lots of properties. For example;
public class Bib
{
public int PartQty { get; set; }
}
Now to unit test; I did the xUnit test something like
[Fact]
public void CanGetAndSetPartQuantity()
{
const int expected = 3;
var target = new Bib() {PartQty = expected};
Assert.Equal(expected, target.PartQty);
}
here, I hate how I am hard-coding expected = 3. What's a good way to test this property for accessor and mutator?
Since this property has no behavior other than being a getter/setter for an integer, you're essentially just testing that the compiler worked. This adds basically no value to your test. Consider removing it entirely. That would alleviate you of this odd situation. :)
If you do have some behavior you're trying to capture (e.g., allowed boundary conditions) you only need to test those, and really nothing else. Usually you will have constants for those boundary conditions available as part of the object. Consider using those constants, +/- some appropriate increment.
Constrained Non-determinism is a good fit for this kind of unit test. Write it like this instead:
[Fact]
public void CanGetAndSetPartQuantity()
{
const int expected = new Random().Next();
var target = new Bib() {PartQty = expected};
Assert.Equal(expected, target.PartQty);
}
This ensures that the output correctly represents the input, no matter what the input is.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With