0
可能重複:
What are the differences between mocks and stubs on Rhino Mocks?存根和模擬實現
我使用單位的嘲笑testing..But我不能在執行代碼模擬和存根的區別 模擬實現代碼是: -
[TestFixture]
public class MockUser
{
[Test]
public void SaveValidUserFileNameUsingMock()
{
UserMock um = new UserMock();
um.uName = "";
um.fName = "sfs.jpg";
um.ContentType = "image/jpg";
IUser usr = um;
Assert.AreEqual("E:/image/kawade.jpg", usr.Save(um));
}
}
public class UserMock : IUser
{
public string uName;
public string fName;
public string ContentType;
public string Save(IUser u)
{
if (uName == "" || fName == "")
{
throw new ArgumentException("missing field name");
}
if (ContentType.Contains("image"))
{
string ext = Path.GetExtension(fName);
return (string.Format("E:/image/{0}", this.uName + ext));
}
return "invalid";
}
}
public interface IUser
{
string Save(IUser u);
}
and the class測試是: -
public class User
{
public string uName;
public string fName;
//private IUser usr;
public void Save(FileUpload fu, User usr)
{
if (uName == null || fName == null)
{
throw new ArgumentException("missing field name");
}
if (fu.PostedFile.ContentType.Contains("image"))
{
string ext = Path.GetExtension(fName);
fu.SaveAs(string.Format("E:/image{0}", this.fName + ext));
}
}
和相同的類正在用於存根測試。存根測試代碼是: -
[TestFixture]
public class UserTest
{
[Test]
public void SaveUserValidFile()
{
UserStub su = new UserStub();
su.uName = "kawade";
su.fileName = "sfgs.png";
su.Contenttype = "image/x-png";
su.pName = "sdskjh";
IUser target = su;
}
}
internal class UserStub : IUser
{
public string uName;
public string pName;
public string Contenttype;
public string fileName;
public string Save(IUser u)
{
if (uName == null || pName == null)
{
throw new ArgumentException("user_name or pic_name is required");
}
if (Contenttype.Contains("image"))
{
string ext = Path.GetExtension(fileName);
//return string.Format("C:/test/{0}", this.uName + ext);
Assert.AreEqual("C:/Test/kawade.png", target.Save(su));
}
return "";
}
}
public interface IUser
{
string Save(IUser u);
}
請有人讓我知道存根和模擬之間的差異,它在上面的代碼實現..
@Mitch小麥:如果你是Google的話,這與你無關。 (幾乎)***如果搜索時間夠長,可以找到所有的***。要麼回答問題,要麼將其作爲重複關閉。我們在這裏確實想要提出問題併成爲編程問題的第一站點,是嗎? – jgauffin 2011-04-26 08:09:51
@ jgauffin:我花了5秒鐘。比創建他的問題所需的海報少很多時間。順便說一句,我已經投票結束了作爲一個騙局。我建議你這樣做。 – 2011-04-26 08:17:40
@Mitch小麥:如果你在5秒內發現它並不重要。所有的編程問題都應該受到歡迎,即使它很容易在谷歌中找到。我現在投票結束這個問題。 – jgauffin 2011-04-26 08:21:17