三、可以控制为哪些列生成数据。
在生成测试数据的时候,还可以根据实际情况指定为哪些列产生测试用的临时数据。在实际工作中,在测试用的表中可能会有一些大容量的数据类型。对于这些列是否有产生测试数据呢?这程序开发人员可以根据自己的需要来考虑。笔者的建议是,如果产生的记录数比较少,如只有几十条,那么生成也无所谓。但是如果产生的记录行数比较多,如有成千上万条,那么最好还是不要生成的好。因为此时生成测试数据时由于这些字段的影响,会耗费比较成的时间。所以在生成测试数据的时候,可以指定不为某些列、或者只为哪些列生成数据。
除此之外,在为数据生成指定具体列的时候,需要注意一些限制条件。如在指定表中如果设置了主键,那么必须为主键列生成数据。如果某个列设置为不能为空,那么必须要为其产生数据。不过如果非空列或者关键字列已经设置了默认值,那么可以不指定。让数据库自动用默认值填充。其实这跟在数据库中插入数据的规则一样。Visual Studio在这里的作用就只是产生测试用的数据,然后由数据库利用插入语句负责将数据保存在数据库对应的表中。在2010的版本中,对于NULL列的测试数据做了一个补充。如现在某个列设置为允许为空。而开发人员出于测试的需要,想这个字段一半为空,一半不为空。或者说一个具体的比率。此时程序开发人员就可以在该列的属性中设置“NULL百分比”属性,指定需要填充数据的百分比。应用程序就会根据指定的值,随机的为记录填充数据。
四、预览数据以判断即将产生的测试数据是否满足要求。
当以上规则定义好之后,就可以产生测试的数据。有些程开发人员可能比较细心,想要在数据库中保存数据之前,先要查看一下数据,以判断是否按照开发人员的要求产生相关的数据。此时管理员就可以使用预览数据的功能查看实际生成的测试数据。注意通过预览数据功能产生的测试数据还没有最终保存在数据库中,而是保存在内存中。
不过这里需要注意一个问题。即在预览数据的时候,并不会考虑到数据库中的相关约束。也就是说,即使预览数据是成功的,也并不一定能够保证将这些数据成功保存在数据库中。如现在开发人员指定一张表,而这张表中有非空的约束,并且没有指定默认值。而在设置规则的时候,没有为这个字段指定要生成数据。此时在预览数据的时候是可以的,因为此时还没有跟数据库进行关联。而真正的要将这些测试数据保存到数据库的时候,就会插入不了。因为违反了数据库的唯一性约束。类似的,如果数据类型不符或者数据长度不够等等,可以成功预览数据,但是却无法保存到数据库中。故在预览数据的时候,还需要判断一下,是否有违反数据库表的相关约束;或者说对应的数据类型与长度是否相符等等。
总之,采用这个测试数据生成器,再配合这些丰富的控制规则,可以在最大程度上满足程序员程序测试的需要。在最短的时间内产生需要的测试数据。最后需要提醒的一句是,为了保证数据库或者应用程序在投入使用之前能够保证将垃圾数据清除干净,在生成数据的时候最好还是为局部的表生成的为好。而不要为整个数据库一次性生成。