We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 3 years ago.
Improve this questionI am use c# and for unit testing and integration testing usually I need to populate fields automatically based on attributes.
Lets say we will test if we can write and get back user data to database.- I create a user object populate fields write user to database
- Read user object from database
- Check fields if what I write is same as what I read
Is there any framework to populate user with test data automatically and check if two object are have the same values?
Sample c开发者_如何学JAVAode may like this
User user = new User();
AutoPopulator.Populate(user);
user.Save();
You might find it relevant. Here is a list of few other frameworks as of today:
Well-known and respected:
- NBuilder
- AutoFixture
- AutoPoco(Discontinued / Deprecated)
- Bogus - C# port of faker.js with locale support. Used by Elasticsearch (NEST).
Little-known:
- Hydrator
- Fabricator
Unfamiliar:
- TestDataGenerator
- TestDataFactory (Discontinued)
- TestData
- Any-.Net
Take a look at NBuilder. It lets you build test objects with random data, incrementing values, and anything you can probably think of. All through a nice fluent interface.
Yes there is. I found this when watching session #3 of the Summer of NHibernate series by Stephen Bohlen.
His company, Microdesk, has developed a utility that will allow you to save the state of a database on test fixture construction, set the state of the database at the start of every test, and recover the original state of the database on test fixture deconstruction.
Download the utility here: Microdesk.Utility.UnitTest
For a tutorial on how to use it, watch the Summer of NHibernate session #3 video.
Fluent NHibernate has a feature which gives you everything on your wish-list, except the auto-population part:
Link: http://wiki.fluentnhibernate.org/Persistence_specification_testing
However, given C# with code contracts, it wouldn't be to hard to auto-magically create valid objects yourself using reflection.
精彩评论