最近MVC项目做单元测试,做的有点晕了。网上看到这点:单元测试是最小的测试单元了,就是针对一个方法的。 假设一个场景:类AB中有 A方法里调用了B方法,如下: public class AB
{ public bool A(bool isSuccess)
{
B(); return isSuccess;
} public void B()
{
}
} 现在 要针对方法A 进行单元测试。 [TestMethod()] public void ATest()
{
AB ab = new AB(); bool result = ab.A(true);
Assert.AreEqual(true, result);
}疑问:1.A方法调用了B方法,如果B方法发生异常,导致A方法的单元测试没有通过, 这种情况下单元测试失败了,是否能说明A方法有问题?(我觉的A方法本身没有问题,是B方法的问题) 2.如果发生上面的情况,单元测试,其实并没有测试出是B方法的问题,实际项目中,一个方法里跟N多对象和方法有关,这样的单元测试是不是没有什么意义,它找不出具体的问题出在哪里,要单元测试何用? 3. 想到 电灯和 开关的例子,要测试电灯是否是好的,首先要保证开关是好的,如果开关都不能保证好的,灯没亮,就不知道是灯的问题还是开关的问题。同理,如果B方法不能保证能正常通过,那么说单元测试A方法将没有用,或者说A方法是不可测试的,可不可以这样说? 4.Mock对象就是模拟对象,模拟环境,我对这个Mock对象的理解是去模拟那些可能会导致失败的外部环境。如A方法,依赖B方法,Mock对象应该去模拟B方法,如果模拟不了,就是说A方法可测试性差,或者不能测试。 不知道能不能这样理解? (如果真是这样的话,那就是好多方法都无法单元测试了) 望各位园友 指点一下,在这谢谢啦!
- 2 回答
- 0 关注
- 393 浏览
添加回答
举报
0/150
提交
取消