????4???????????????????????????伪????
????4.1????????????
?????????????????????????????????????伪???????
????????????????????????????????
????????????
????public class UserBll
????{
????private readonly IUser _user;
????public UserBll(IUser user)
????{
????this._user = user;
????}
????public bool IsExistUser(string userId)
????{
????return _user.IsExist(userId);
????}
????}
???????????
????[Test]
????public void IsExistUser_ExistUser_ReturnsTrue()
????{
????var fackUser = new FackUser {WillBevalid = true};
????var user = new UserBll(fackUser);//???伪????
????bool result = user.IsExistUser("1");
????Assert.IsTrue(result);
????}
??????????????????????霉?????????????????????????????????????????????????????????????????????????????????????????????????
??????贸?????????api????????些????????????胁????????????????????????
????4.2??????????get??set?????伪????
????????????
????public class UserBll
????{
????public IUser User { get; set; }
????public UserBll(IUser user)
????{
????User = new User();//??????????????????
????}
????public bool IsExistUser(string userId)
????{
????return User.IsExist(userId);
????}
????}
???????????
????[Test]
????public void IsGetName_NormalGetName_ReturnsTrue() {
????var fackUser = new FackUser { WillBevalid = true };
????var user = new UserBll { User = fackUser };//???????
????bool result = user.IsExistUser("1");
????Assert.IsTrue(result);
????}
???????????????????????????????????????????????写??
????????????????????????????????????????????????????????????????????????????????????????????????
????4.3?????????伪??????????伪????
?????????????????
????public class UserFactory
????{
????private  IUser _user = null;
????public  IUser Create()
????{
????if (_user != null)
????return _user;
????return new User();
????}
????[Conditional("DEBUG")]
????public  void SetUser(IUser muser)
????{
????_user = muser;
????}
????}
????????????
????public class UserBll
????{
????public bool IsExistUser(string userId)
????{
????var userFactory = new UserFactory();
????return userFactory.Create().IsExist(userId);
????}
???????????
????[Test]
????public void IsGetName_NormalGetName_ReturnsTrue() {
????var fackUser = new FackUser { WillBevalid = true };
????var userFactory = new UserFactory();
????userFactory.SetUser(fackUser);//????????????伪????
????bool result = new UserBll().IsExistUser("1");
????Assert.IsTrue(result);
????}
????????伪????????? ???????????????????????????????伪?????睢�??????????????????谢????????
????????????????????谩??????????????????????????????????????些??????????
????4.4?????????写
??????????????????瑁�
?????????????
???????????????????????槎�?????????
???????????????????霉???????
?????????????校?
???????????????
????????????????斜???????
???????????????婊�??????????????危???????????
??????写?榉�??
??????????????
?????????????校?
?????????????????????????????????????
????????????????????????????
????伪?????????????
????public class UserBll
????{
????public bool IsExistUser(string userId)
????{            var user = UserManager();
????return user.IsExist(userId);
????}
????protected virtual IUser UserManager()
????{
????return new User();
????}
???????????????????????
????public class TestUser : UserBll
????{
????public TestUser(IUser user) {
????_muser = user;
????}
????private readonly IUser _muser;
????protected override IUser UserManager() {
????return _muser;
????}
????}
???????????
????[Test]
????public void IsGetName_NormalGetName_ReturnsTrue() {
????var fackUser = new FackUser { WillBevalid = true };//??????
????var testUser = new TestUser(fackUser);//???伪??????????????
????bool result = testUser.IsExistUser("1");
????Assert.IsTrue(result);
????}
??????????????写???????写??????????????????婊�??????????????????????????路???????????????????????????????????????????????????婊�????????????????????
????????????????????????????????????????????????????????谩?
????4.5?????????????
???????????????
????public class UserBll
????{
????public bool IsExistUser(string userId)
????{
????return UserManager(userId);
????}
????protected virtual bool UserManager(string userId)
????{
????IUser user = new User();
????return user.IsExist(userId);
????}
????}
???????????????????????
????public class TestUser : UserBll
????{
????public bool IsSupported;
????protected bool IsGetUserName(string userId) {
????return IsSupported;
????}
????}
??????????
????public void IsGetName_NormalGetName_ReturnsTrue() {
????var testUser = new TestUser { IsSupported = true };
????bool result = testUser.IsExistUser("1");
????Assert.IsTrue(result);
????}
???????????????????????????????????????????????????????????????????????????梅????????????????????????????????械????????????????????????????
????????????????????谩???????煤???????????