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 answers
Related Questions in T-SQL
- Dynamic query creation with Array like implementation
- How to locate relevant tables or columns in a SQL Server database
- Calling a REST API from SQL Server
- How do I use Poor Man's T-SQL Formatter in SSMS v20?
- sp_executesql Not Working with a Parameters search nvarchar
- Using MSXML2.ServerXMLHTTP with SQL Server status, statusText and responseHeader are all null
- tsql functions like REPLACE() failing in azure data factory pipeline connected to salesforce
- GROUP BY with multiple nested queries T-SQL
- How to get the superset of all XML paths from an XML column in a table
- Split Invoice Total into multiple Rows but Split always equals Total
- Conversion failed when converting date and/or time from character string while ordering by date or string
- SQL How to add a conditional to the aggregate function within a pivot table?
- Update the column which has sequence number dynamically
- SQL query to extract incremental data from a table in SQL Server
- Convert Date format in a table
Related Questions in TSQLT
- tSQLt - Install failed
- tSQLt : How to compare result set (dynamic column return) from call stored procedure without define the structure table
- T-SQL Calculate Turnover for Rolling 12 month from Staff_table and Leavers_Table
- VS 2022 17.5.1 Project contains a reference to a project which is unloaded
- Setup Azure SQL database unit test DevOps environment with tSQLt
- Is Red Gate SQL Test tSQLt version the same as in GitHub?
- How to run tSQLt in a specific order and make it dependent test?
- Tsqlt tests are failing even though Expected and Actual tables have same values
- Is there a short hand method of retrieving a value from a function in an insert?
- SqlPackage failing - [sys] reference not resolved
- Required permission to use tSQLt on SQL Server
- tSQLt testing between source and destination database
- Exec tSQLt.Faketable crashing our original table constraint and data
- tSQLt V1.0.8083.3529 will not build in Visual Studio 2022
- My tSQLt scripts gets overwritten when prod db refresh happens? How to persist the tsqlt script?
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?
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)
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.