???????????????
???????????? ???????[ 2015/12/17 11:48:54 ] ??????????????? ???????
????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);
????}
???????????????????????????????????????????????????????????????????????????梅????????????????????????????????械????????????????????????????
????????????????????谩???????煤???????????
???????????????????????婕�???????????????????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?????????????????

???路???
??????????????????
2023/3/23 14:23:39???写?貌??????????
2023/3/22 16:17:39????????????????????些??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???路???????路
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11????????
?????????App Bug???????????????????????Jmeter?????????QC??????APP????????????????app?????械????????jenkins+testng+ant+webdriver??????????????JMeter????HTTP???????Selenium 2.0 WebDriver ??????