I am just starting to use tsqlt inside redgate's sql test. I have to deal with quite large tables (large number of columns) in a legacy databases. What is the best practise to insert some fake data into such tables (the 'script as' insert statements are quite large) - hence they would make my 'arrange part' of the unit test literally unreadable. Can I factor out such code? Also is there a way to not only script the insert statement but also fill in some values automagically? Thanks.
1
There are 1 best solutions below
Related Questions in T-SQL
- Combine two rows based on common ID
- Conditional null constraint on Null
- How to create separate rows for each unique value in source data
- Abstracting out a query to a stored procedure makes it run very slowly
- is there a way to create a user defined function like this
- Right Index scan when used XML
- Searching for just ? and spaces in MSSQL
- String to DATETIME with TimeZone
- Filter data from DB with datetimepicker
- SQL Duplicate query counter needing collation
- Separate string into columns
- MS SQL XQuery xs:base64Binary returns NULL
- How to use Replace an unknown length of characters in SQL Server?
- t-sql update XML element value based on another element value
- How to round median value
Related Questions in TSQLT
- How do I rename a tSQLt test class?
- How to convert datetime fileds to UTC Datetime for existing data in the database?
- Msg 8114, Level 16, State 5, Line 3 Error converting data type varchar to float
- tSQLt, triggers and testing
- tSQLt.RunAll returns 0 test cases but tSQLt.Run <schema name> works
- tSQLt - How to do a unit test on code in an error Catch block of code
- How to view test results in tSQLt?
- Get missing columns from a list of expected columns in a table
- How to ROLLBACK a transaction when testing using tSQLt
- code reuse tsqlt / sql test
- tSQLt - Install failed
- Is there a way to assert a "not" condition using tSQLt?
- Can I integrate Redgate SQL Test directly with teamcity to get code coverage
- Line vs Statement coverage in SQL Cover
- TSQLT Asserting stored procedure column names
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
I would agree with your comment that you don't need to fill out all of the columns in your insert statement.
tSQLt.FakeTable removes all non-null constraints from the columns, as well as computed columns and identity columns (although these last two can be reinstated using particular parameters to FakeTable).
Therefore, you only need to populate the columns which are relevant to your code under test, which is usually only a smaller subset of columns from the table(s).
I wrote about this in a bit more detail in this article which also contains a few other 'gotchas' you may want to know.
Additionally, I'd suggest that if you have a number of tests which all need the same table faked and data inserted, that you consider using a SetUp routine - this is a Stored procedure in the test class (schema) which is called SetUp, and is called by tSQLt before each test in that schema. They won't show in RedGate's SQL Test window as yet (I've suggested it as an improvement), but will still work. This can make it harder to see - but does modularise that code thus reducing identical, repeated code.