既然你是要访问数据库,那就绕不开数据库。拷贝一个数据库副本保存备用,然后测试,将这个副本附加到数据库中,然后访问这个副本进行测试。
你是说在数据库中自己设定一个假数据让这个方法查,看看查出来是不是自己设定的数据是吗
看这描述,你压根还不知道啥是单元测试,建议还是先买本单元测试的书好好看看。
确实不太懂,网上也查了一下相关资料,我目前的理解就是只知道这是测试一个方法逻辑有没有问题的测试,比如简单的计算一个乘法的方法,然后我随便弄2个数进去看看是不是计算出我要的结果,但是对于无返回的方法我就不知道测试的目的是什么了。而且我现在的情况是有一个Controller里面的一个Action调用到了一个静态方法,而且这个静态方法是要访问数据库的,但是一般来说单元测试是不会访问数据库的,都是Mock一个假的对象去测试,而且从数据库读取出来的结果是放到ViewBag中的,像这样的方法需要测试吗,测试的目的又是什么呢? 还有就是一个项目中的任何一个方法都有必要进行测试吗(包括构造函数,静态构造函数),还是说只要对一些底层的有逻辑代码的方法需要测试呢 ?
@Sugar★: 孔子说过, no silver bullet!
你是把单元测试和测试混淆了。
重点是单元,理解这两个字。
简单说就是,测试一个不依赖于外界变化的方法是否能够正常,按照预计设计的特性运行。
所以,数据库啥的,都是浮云。
单元测试不是集成测试,单元测试就是单元测试,他不能用来解决你所有的问题。
例如:
你写一个函数,实现加法 Add(a,b),返回结果。
那么单元测试可能有:
1、测试传入非数字,或者空,比如 Add(null, null)
2、测试基本的加法,比如Add(2,3),应该返回5
3、测试超出计算范围的,比如Add(2000000000,2000000000)
4、输入不超过范围,结果超出范围的。
来保证你这个函数的鲁棒性。(不知道鲁棒性可以自行google)
算了,你还是看书吧。
@爱编程的大叔: 你说的这些我在网上查相关资料的时候我都看过了,能回答一下我刚才回复的那段话中加粗字体的问题吗