コード例 #1
0
        public void CheckInTest_顧客1男2女_應回傳收費人數1人_使用NSubstitute物件()
        {
            //arrange準備受測物件、參數、預期結果
            ICheckInFee CheckInFee = Substitute.For <ICheckInFee>();
            Pub         pub        = new Pub(CheckInFee);

            CheckInFee.GetFee(Arg.Any <Customer>()).Returns(100);
            List <Customer> customers = new List <Customer>
            {
                new Customer {
                    IsMale = true
                },
                new Customer {
                    IsMale = false
                },
                new Customer {
                    IsMale = false
                },
            };

            decimal expected = 1;
            //act執行受測方法

            decimal actual = pub.CheckIn(customers);

            //assert驗證執行結果與預測結果是否一致
            Assert.AreEqual(expected, actual);
        }
コード例 #2
0
ファイル: PubTests.cs プロジェクト: beardemo11/CodeWars
        public void Test_Saturday_Charge_Customer_Count()
        {
            //arrange
            ICheckInFee stubCheckInFee = MockRepository.GenerateStub <ICheckInFee>();
            Pub         target         = new Pub(stubCheckInFee);

            stubCheckInFee.Stub(x => x.GetFee(Arg <Customer> .Is.Anything)).Return(100);

            var customers = new List <Customer>
            {
                new Customer {
                    IsMale = true
                },
                new Customer {
                    IsMale = false
                },
                new Customer {
                    IsMale = false
                },
            };

            decimal expected = 3;

            //act
            var actual = target.CheckInisFemaleisFriday(customers);

            //assert
            Assert.AreEqual(expected, actual);
        }
コード例 #3
0
        public void CheckInTest_Customer_2女1男_應收費人數為1()
        {
            //arrange
            ICheckInFee stubCheckInFee = MockRepository.GenerateStub <ICheckInFee>();
            Pub         target         = new Pub(stubCheckInFee);

            stubCheckInFee.Stub(x => x.GetFee(Arg <Customer> .Is.Anything)).Return(100);

            var customers = new List <Customer>
            {
                new Customer {
                    IsMale = true
                },
                new Customer {
                    IsMale = false
                },
                new Customer {
                    IsMale = false
                },
            };

            decimal expected = 1;

            //act
            var actual = target.CheckIn(customers);

            //assert
            Assert.AreEqual(expected, actual);
        }
コード例 #4
0
ファイル: PubTests.cs プロジェクト: HughChiou/TDD30Days
        public void GetInComeTest()
        {
            //arrange
            ICheckInFee stubCheckInFee = MockRepository.GenerateStub <ICheckInFee>();
            Pub         target         = new Pub(stubCheckInFee);

            stubCheckInFee.Stub(x => x.GetFee(Arg <Customer> .Is.Anything)).Return(100);

            var customers = new List <Customer>
            {
                new Customer {
                    IsMale = true
                },
                new Customer {
                    IsMale = true
                },
                new Customer {
                    IsMale = false
                }
            };

            var inComeBeforeCheckIn = target.GetInCome();

            Assert.AreEqual(0, inComeBeforeCheckIn);

            decimal expectedIncome = 200;

            //act
            var chargeCustomerCount = target.CheckIn(customers);

            var actualIncome = target.GetInCome();

            //assert
            Assert.AreEqual(expectedIncome, actualIncome);
        }
コード例 #5
0
        public void Test_ChargeCustomer_Count()
        {
            //arrange
            ICheckInFee stubCheckInFee = MockRepository.GenerateStub <ICheckInFee>();
            Pub         target         = new Pub(stubCheckInFee);

            var customers = new List <Customer>
            {
                new Customer()
                {
                    IsMale = true
                },
                new Customer()
                {
                    IsMale = false
                },
                new Customer()
                {
                    IsMale = false
                },
            };

            decimal expected = 1;

            //act
            var actual = target.CheckIn(customers);

            //assert
            Assert.AreEqual(expected, actual);
        }
コード例 #6
0
        public void Test_Friday_Charge_Customer_Count()
        {
            //arrange
            ICheckInFee stubCheckInFee = MockRepository.GenerateStub <ICheckInFee>();

            var fakeTimeWrapper = new FakeTimeWrapper();

            fakeTimeWrapper.MockTime = Convert.ToDateTime("2021/04/09"); //friday

            Pub target = new Pub(stubCheckInFee, fakeTimeWrapper);

            stubCheckInFee.Stub(x => x.GetFee(Arg <Customer> .Is.Anything)).Return(100);

            var customers = new List <Customer>
            {
                new Customer {
                    IsMale = true
                },
                new Customer {
                    IsMale = false
                },
                new Customer {
                    IsMale = false
                },
            };

            decimal expected = 1;

            //act
            var actual = target.CheckIn(customers);

            //assert
            Assert.AreEqual(expected, actual);
        }
コード例 #7
0
        public void Test_Income_顧客1男2女_應回傳收費人數1人_模擬每一人收費為100元_預期結果門票收入總數為100_使用RhinoMocks物件()
        {
            //arrange
            ICheckInFee stubCheckInFee = MockRepository.GenerateStub <ICheckInFee>();
            Pub         target         = new Pub(stubCheckInFee);

            stubCheckInFee.Stub(x => x.GetFee(Arg <Customer> .Is.Anything)).Return(100);

            var customers = new List <Customer>
            {
                new Customer {
                    IsMale = true
                },
                new Customer {
                    IsMale = false
                },
                new Customer {
                    IsMale = false
                },
            };

            var inComeBeforeCheckIn = target.GetInCome();

            Assert.AreEqual(0, inComeBeforeCheckIn);

            decimal expectedIncome = 100;

            //act
            var chargeCustomerCount = target.CheckIn(customers);

            var actualIncome = target.GetInCome();

            //assert
            Assert.AreEqual(expectedIncome, actualIncome);
        }
コード例 #8
0
        public void CheckInTest_顧客1男2女_應回傳收費人數1人_使用RhinoMocks物件()
        {
            //arrange準備受測物件、參數、預期結果
            ICheckInFee stubCheckInFee = MockRepository.GenerateStub <ICheckInFee>();
            Pub         target         = new Pub(stubCheckInFee);

            stubCheckInFee.Stub(x => x.GetFee(Arg <Customer> .Is.Anything)).Return(100);

            var customers = new List <Customer>
            {
                new Customer {
                    IsMale = true
                },
                new Customer {
                    IsMale = false
                },
                new Customer {
                    IsMale = false
                },
            };

            decimal expected = 1;

            //act執行受測方法
            var actual = target.CheckIn(customers);

            //assert驗證執行結果與預測結果是否一致
            Assert.AreEqual(expected, actual);
        }
コード例 #9
0
        public void Test_Income_顧客1男2女_應回傳收費人數1人_模擬每一人收費為100元_預期結果門票收入總數為100_使用NSubstitute物件()
        {
            //arrange準備受測物件、參數、預期結果
            ICheckInFee CheckInFee = Substitute.For <ICheckInFee>();
            Pub         pub        = new Pub(CheckInFee);

            CheckInFee.GetFee(Arg.Any <Customer>()).Returns(100);

            List <Customer> customers = new List <Customer>
            {
                new Customer {
                    IsMale = false
                },
                new Customer {
                    IsMale = true
                },
                new Customer {
                    IsMale = false
                },
            };

            var inComeBeforeCheckIn = pub.GetInCome();

            Assert.AreEqual(0, inComeBeforeCheckIn);

            decimal expectedIncome = 100;

            //act執行受測方法

            decimal chargeCustomerCount = pub.CheckIn(customers);
            decimal actualIncome        = pub.GetInCome();

            //assert驗證執行結果與預測結果是否一致
            Assert.AreEqual(expectedIncome, actualIncome);
        }
コード例 #10
0
        public void CheckInTest_Mock確認程式被執行次數()
        {
            //arrange
            ICheckInFee stubCheckInFree = Substitute.For <ICheckInFee>();

            stubCheckInFree.GetFree(Arg.Any <Customer>()).Returns(100);
            Pub pub = new Pub(stubCheckInFree);

            var customers = new List <Customer>
            {
                new Customer {
                    IsMale = true
                },
                new Customer {
                    IsMale = true
                },
                new Customer {
                    IsMale = false
                },
            };
            var inComeBeforeCheckIn = pub.GetInCome;

            Assert.AreEqual(0, inComeBeforeCheckIn);

            decimal expectedIncome = 200;
            //act
            var actual       = pub.CheckIn(customers);
            var actualIncome = pub.GetInCome;

            //assert
            Assert.AreEqual(expectedIncome, actualIncome);
        }
コード例 #11
0
        public void CheckInTest_2男1女_與ICheckInFee互動2次()
        {
            //arrange mock
            var customers = new List <Customer>();

            //2男1女
            var customer1 = new Customer {
                IsMale = true, Seq = 1
            };
            var customer2 = new Customer {
                IsMale = false, Seq = 2
            };
            var customer3 = new Customer {
                IsMale = true, Seq = 3
            };

            customers.Add(customer1);
            customers.Add(customer2);
            customers.Add(customer3);

            MockRepository mock           = new MockRepository();
            ICheckInFee    stubCheckInFee = mock.StrictMock <ICheckInFee>();

            using (mock.Record())
            {
                //期望呼叫ICheckInFee的GetFee()次數為2次
                //且第一次的參數為customer1, 第二次的參數為customer3
                stubCheckInFee.GetFee(customer1);
                LastCall
                .Return((decimal)100);

                stubCheckInFee.GetFee(customer3);
                LastCall
                .Return((decimal)200);

                ////若不需要檢查傳入參數,只需要確認呼叫次數為2次,可以這樣寫
                //stubCheckInFee.GetFee(customer1);
                //LastCall
                //    .IgnoreArguments().Return((decimal)200)
                //    .Repeat.Times(2);
            }

            using (mock.Playback())
            {
                var target = new Pub(stubCheckInFee);

                var count = target.CheckIn(customers);
            }
        }
コード例 #12
0
        public void Test_CheckIn_Charge_Only_Male()
        {
            //arrange mock
            var customers = new List <Customer>();
            //2男1女
            var customer1 = new Customer()
            {
                IsMale = true
            };
            var customer2 = new Customer()
            {
                IsMale = true
            };
            var customer3 = new Customer()
            {
                IsMale = false
            };

            customers.Add(customer1);
            customers.Add(customer2);
            customers.Add(customer3);

            MockRepository mock           = new MockRepository();
            ICheckInFee    stubCheckInFee = mock.StrictMock <ICheckInFee>();

            using (mock.Record())
            {
                //期望呼叫ICheckInFee的GetFee()次數為2次
                stubCheckInFee.GetFee(customer1);

                LastCall
                .IgnoreArguments()
                .Return((decimal)100)
                .Repeat.Times(2);
            }

            using (mock.Playback())
            {
                var target = new Pub(stubCheckInFee);
                var count  = target.CheckIn(customers);
            }
        }
コード例 #13
0
        public void Test_Friday_Charge_Customer_Count()
        {
            using (ShimsContext.Create())
            {
                System.Fakes.ShimDateTime.TodayGet = () =>
                {
                    //2012/10/19為Friday
                    return(new DateTime(2012, 10, 19));
                };


                //arrange
                ICheckInFee stubCheckInFee = MockRepository.GenerateStub <ICheckInFee>();
                Pub         target         = new Pub(stubCheckInFee);

                stubCheckInFee.Stub(x => x.GetFee(Arg <Customer> .Is.Anything)).Return(100);

                var cusomers = new List <Customer>
                {
                    new Customer()
                    {
                        IsMale = true
                    },
                    new Customer()
                    {
                        IsMale = false
                    },
                    new Customer()
                    {
                        IsMale = false
                    },
                };

                decimal expected = 1;

                //act
                var actual = target.CheckIn(cusomers);

                //assert
                Assert.AreEqual(expected, actual);
            }
        }
コード例 #14
0
        public void Test_Income()
        {
            //arrange
            ICheckInFee stubCheckInFee  = MockRepository.GenerateStub <ICheckInFee>();
            var         fakeTimeWrapper = new FakeTimeWrapper();

            fakeTimeWrapper.MockTime = Convert.ToDateTime("2021/04/09");
            Pub target = new Pub(stubCheckInFee, fakeTimeWrapper);

            stubCheckInFee.Stub(x => x.GetFee(Arg <Customer> .Is.Anything)).Return(100);

            var customers = new List <Customer>
            {
                new Customer {
                    IsMale = true
                },
                new Customer {
                    IsMale = false
                },
                new Customer {
                    IsMale = false
                },
            };

            var inComeBeforeCheckIn = target.GetInCome();

            Assert.AreEqual(0, inComeBeforeCheckIn);

            decimal expectedIncome = 100;

            //act
            var chargeCustomerCount = target.CheckIn(customers);
            var actualIncome        = target.GetInCome();

            //assert
            Assert.AreEqual(expectedIncome, actualIncome);
        }
コード例 #15
0
ファイル: PubFake.cs プロジェクト: gaoyiqun/PracticeUnitTest
 public PubFake(ICheckInFee checkInFee, IDateTimeProvider date)
 {
     this._checkInFee = checkInFee;
     this._date       = date;
 }
コード例 #16
0
ファイル: Pub.cs プロジェクト: benxuhuang/UnitTestExample
 public Pub(ICheckInFee checkInFee, ITimeWrapper timeWrapper)
 {
     this._checkInFee  = checkInFee;
     this._timeWrapper = timeWrapper;
 }
コード例 #17
0
ファイル: Pub.cs プロジェクト: chimpinano/MVC5Book
 public Pub(ICheckInFee checkInFee)
 {
     this._checkInFee = checkInFee;
 }
コード例 #18
0
ファイル: Pub.cs プロジェクト: tim811223/MVC5--Book
 public Pub(ICheckInFee checkInFee)
 {
     this._checkInFee = checkInFee;
 }
コード例 #19
0
 public Pub(ICheckInFee checkInFee)
 {
     _checkInFee = checkInFee;
 }