我有一个拥有15名成员的实体。有各种类型的成员应用了各种规则,一些允许空值而另一些则不允许。这是数据库实体:
tbl_items(
item_id bigint identity(1,1) not null primary key,
item_category bigint null foreign key references tbl_categories(category_id) on delete set null,
item_model nvarchar(50) not null,
item_brand nvarchar(50) not null,
item_color nvarchar(20) not null,
item_made_in nvarchar(20) null,
item_desc nvarchar(100) null,
item_price decimal not null,
item_image varbinary(max) null,
item_monetary_unit nvarchar(10) not null,
item_rating int null,
item_date datetime not null,
item_quantity int not null
)
单元测试数据条目可能具有的所有状态将使我的单元测试类(ItemTest)具有超过1000行代码。那么我需要为每个数据状态编写一个测试方法吗?或者我应该只考虑编写测试方法的无效状态?就像在属性不可为空时使用null一样。
答案 0 :(得分:1)
你究竟在测试什么?如果你正在测试从对象到数据库的映射,我会写一个测试,证明我可以插入数据,以便对象的值最终出现在正确的数据库字段中,然后退出。
答案 1 :(得分:1)
如果你正在使用NUnit或类似的东西,有两个概念可以帮助解决这个问题:
就你应该进行单元测试而言,这个问题的答案差别很大。有些人在控制器层编写跨层验收测试。有些人嘲笑所有依赖项并编写独立的单元测试。您必须了解您和您的团队想要做的事情并尝试不同的策略。就个人而言,对于你所描述的情况,我会为你的验证函数编写一个通用测试。然后,为所有真正不同的案例编写一个TestCase。