小编M. *_*kis的帖子

应用层单元测试在DDD中的外观如何?

在我的工作中,我们正在编写由应用程序调用的Web服务.我们正在使用域驱动设计进行敏捷思维设置.与在DDD中一样,我们有域和应用层.但是,我们在为这些层编写单元测试时遇到了问题,因为我们似乎正在测试域逻辑两次:在域单元测试中和在应用程序单元测试中:

申请单元测试

    [TestMethod]
    public void UserApplicationService_SignOut_ForExistingUserWithBalance_ShouldClearBalanceAndSignOut()
    {
        //Arrange
        long merchantId = 1;
        long userId = 1;

        var transactionId = "001";
        var id = "122";            
        var user = Help.SetId<User>(User.Register(id, new DateTime(2015, 01, 01, 00, 00, 01)), userId);

        _usersDb.Add(user);
        var userBonusBalanceRepository = _testContext.MoqUnitOfWork.MockUnitOfWork.Object.GetUserBonusAccountRepository();

        UserBonusAccount uba = userBonusBalanceRepository.GetForUser(user);
        uba.PayTo(
            new Domain.Core.Money { TotalAmount = 10, BonusAmount = 0 },
            new Domain.Core.Outlet
            {
                BonusPercentage = 50,
                IsLoyalty = true,
                Id = id,
                OutletId = "111"
            },
            transactionId,
            DateTime.Now);
        userBonusBalanceRepository.Update(uba);          

        //Act
        _testContext.UserApplicationService.SignOut(id);

        //Assert
        var firstOrDefault …
Run Code Online (Sandbox Code Playgroud)

c# tdd unit-testing domain-driven-design application-layer

4
推荐指数
1
解决办法
2010
查看次数