我目前用"单元测试"来验证三层架构中每层的正确性,但是有个问题:数据访问层可以单独测试,但是业务逻辑层不可以单独测试,必须得要数据访问层才能测试.
那如果项目是分工合作,业务逻辑层的编写人员岂不是无法测试自己的代码?请有经验的朋友解答下,谢谢!

解决方案 »

  1.   


    不能测试很正常,比如说如果你的数据库没有安装好怎么做测试;当然你也可以写自己的test case 绕过数据访问层。
      

  2.   

    用接口:
        /// <summary>
        /// 数据层访问器
        /// </summary>
        public static class DataAccessor
        {
            static IArticleDepository _articleDepository = new ArticleDepository();
            static IArticleDepository _articleDepositoryModule = new ArticleDepositoryModule();
            /// <summary>
            /// 获取文章的数据仓库
            /// </summary>
            public static IArticleDepository ArticleDepository
            {
                get
                {
                    return Settings.IsDebugMade ? _articleDepositoryModule : _articleDepository;
                }
            }
        }
    根据Settings.IsDebugMade 的值, 把整个数据层都换成自己写的Module, 这还不能测试??