android使用分层架构企业应用(一)
背景:在用android开发企业应用的时候,发现按照传统的模式开发的代码结构比较差,业务逻辑处理与Activity是放在一起处理的,结构不清晰,类与类之间的耦合度较高,类的功能复杂,导致单元测试也很难开展;所以就有办法保证这个版本的稳定性,于是我跟我的团队都没有信心。因为我压根不知道程序什么时候会无缘无故报出一个bug,我总结一下原因是对过程缺乏必要的跟踪,导致业务行为模糊。我需要用敏捷管理的思想解决这些问题,所以我就开始重构了。
重构的目标:
采用分层架构思想将类解耦,使类遵循单一职责原则。
加入单元测试以保证过程跟踪。
加入自动化构建工具并集成代码检查工具。
加入持续集成输入单元测试结果及代码覆盖率。
具体实现:
将业务逻辑处理单独分离出来,并与Context分离,使其成为与android无关的可独立运行的类如:
SessionManagerService.java
Java代码
public interface SessionManagerService {
// 用户登录
public String login(User user)throws RequestError;
}
就这么一个接口它的职责非常单一,就提供一个登录操作的方法。
关于这个接口的实现类代码就不贴了,实现了这个接口后就可以用单元测试对这个方法进行验证。
SessionManagerServiceTest.java
Java代码
public class SessionManagerServiceTest extends AndroidTestCase {
private SessionManagerService sms;
@Override
protected void setUp() throws Exception {
super.setUp();
sms = new SessionManagerServiceImpl();
}
/**
* 测试登录成功
*
* @throws Exception
*/
@LargeTest
public void testLoginSuccess() throws Exception {
User user = new User();
user.setUserName("qnlpkuge");
user.setPassword("111111");
String result = sms.login(user);
assertEquals("true", result);
}
/**
* 测试用户名不存在
*
* @throws Exception
*/
@LargeTest
public void testUserNotExist() throws Exception {
User user = new User();
user.setUserName("qnlpkugedfswe");
相关新闻>>
- 发表评论
-
- 最新评论 更多>>