i using autofixture's [autodata] attribute provide unit tests (nunit) instance of poco. example:
[test, autodata] public void create_nameisnull_throwsexception(mypoco mypoco) {..} i've added new string property poco must contain formed url.
naturally, [autodata] not aware of requirement , generates usual guid-based string value property. causes tests fail (because of data annotations based validation have in place).
i've followed @ploeh's advice , written convention-based customization autofixture generates formatted url string new property of mine. class called urlspecimenbuilder implements ispecimenprovider.
my question is, how can combine new ispecimenprovider [autodata]?
i don't want have go fixture.customizations.add(new urlspecimenbuilder()); in each 1 of unit test. i'm looking single test fixture setup step same thing.
you should define own version of autodataattribute , apply customizations need. if customizations relevant tests, might called defaultautodata:
[test, defaultautodata] public void create_nameisnull_throwsexception(mypoco mypoco) {..} internal class defaultautodataattribute : autodataattribute { public defaultautodataattribute() : base(new fixture().customizations.add(new urlspecimenbuilder())) { } } see this mark seemann post details.
Comments
Post a Comment