单元测试?使用模拟对象做交互测试
作者:网络转载 发布时间:[ 2014/6/9 13:56:54 ] 推荐标签:单元测试 模拟对象 交互测试
近在看.net单元测试艺术,我也喜欢单元测试,这里写一下如何在测试中使用模拟对象。
开发的过程中,我们都会遇到对象间的依赖,比如依赖数据库或文件,这时,我们需要使用模拟对象,来进行测试,我们可以手写模拟对象,当然也可以使用模拟框架。
假如有这样的一个需求,当用户登陆时,我需要对用户名和密码进行验证,然后再将用户名写入日志中。
|
public class MyLogin
{
public ILog Log { get; set; }
public bool Valid(string userName, string passWord)
{
var isValid = userName == "admin" && passWord == "123456";
Log.Write(userName);
return isValid;
}
}
public interface ILog
{
void Write(string message);
}
}
|
上面的代码在验证完登陆信息后,需要向日志中写入用户名,由于写入日志可能依赖于文件或数据库,我们可能很难进行测试,所以,这里使用模拟对象进行测试。手写模拟对象,代码如下:
|
public class MyLoginTest
{
[Test]
public void Vaild_Test()
{
MyLogin login = new MyLogin();
var log = new TestLog();
login.Log = log;
var userNmae = "admin";
var passWord = "123456";
var isLogin = login.Valid(userNmae, passWord);
Assert.AreEqual(isLogin, true);
Assert.AreEqual(log.Message, userNmae);
}
}
public class TestLog : ILog
{
public string Message;
public void Write(string message)
{
this.Message = message;
}
}
|
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
iOS单元测试mocha、chai、sinon和istanbul实现百分之百的单元测试覆盖率关于单元测试的总结及思考编写更好的Java单元测试的7个技巧Android单元测试框架Robolectric3.0介绍(一)使用Kiwi单元测试总结单元测试如此重要,为什么你不知道Python单元测试??使用装饰器实现测试跳过和预期故障对Controller的单元测试写好单元测试的10个技巧单元测试的重要性Angular单元测试系列??Component、Directive、Pipe 以及ServiceAndroid单元测试的整理提升单元测试体验的利器--Mockito使用总结iOS UnitTest单元测试Vue的单元测试探索(二)

sales@spasvo.com