コード例 #1
0
        public void TestingDerivedClassMethodsWithParameters()
        {
            dynamic proxy = null;
            DerivedClassUnderTest classWithManyMethods = null;

            "Given a proxy of a class"
                .Context(() =>
                {
                    classWithManyMethods = new DerivedClassUnderTest();
                    proxy = Proxy.Create(classWithManyMethods);
                });

            "".Do(() => { });

            "Then calling a method with a null param uses the override with a reference parameter"
                .Observation(() =>
                {
                    proxy.SomeMethod(null);

                    Assert.False(classWithManyMethods.MethodWithSingleValueParameterCalled);
                    Assert.True(classWithManyMethods.MethodWithSingleReferenceParameterCalled);
                });
        }
コード例 #2
0
        public void TestingDerivedClasses()
        {
            dynamic proxy = null;
            DerivedClassUnderTest classWithManyMethods = null;

            "Given a proxy of a derived class"
                .Context(() =>
                         {
                             classWithManyMethods = new DerivedClassUnderTest();
                             proxy = Proxy.Create(classWithManyMethods);
                         });

            "".Do(() => { });

            "Then a private method can be called"
                .Assert(() =>
                {
                    proxy.PrivateMethod();
                    Assert.True(true);
                });

            "Then a protected method can be called"
                .Assert(() =>
                {
                    proxy.ProtectedMethod();
                    Assert.True(true);
                });

            "Then an internal method can be called"
                .Assert(() =>
                {
                    proxy.InternalMethod();
                    Assert.True(true);
                });

            "Then a get can be performed on a private property"
                .Observation(() => Assert.Equal(0, proxy.PrivateProperty));

            "Then a set can be performed on a private property"
                .Assert(() =>
                {
                    proxy.PrivateProperty = 1;
                    Assert.Equal(1, proxy.PrivateProperty);
                });

            "Then a get can be performed on a badly named property"
                .Observation(() => Assert.Equal(0, proxy.badlyNamedProperty));

            "Then a set can be performed on a badly named property"
                .Assert(() =>
                {
                    proxy.badlyNamedProperty = 1;
                    Assert.Equal(1, proxy.badlyNamedProperty);
                });

            "Then a get can be performed on a protected property"
                .Observation(() => Assert.Equal(0, proxy.ProtectedProperty));

            "Then a set can be performed on a protected property"
                .Assert(() =>
                {
                    proxy.ProtectedProperty = 1;
                    Assert.Equal(1, proxy.ProtectedProperty);
                });

            "Then a get can be performed on a internal property"
                .Observation(() => Assert.Equal(0, proxy.InternalProperty));

            "Then a set can be performed on a internal property"
                .Assert(() =>
                {
                    proxy.InternalProperty = 1;
                    Assert.Equal(1, proxy.InternalProperty);
                });

            "Then a get can be performed on a private field"
                .Observation(() => Assert.Equal(0, proxy._privateField));

            "Then a set can be performed on a private field"
                .Assert(() =>
                {
                    proxy._privateField = 1;
                    Assert.Equal(1, proxy._privateField);
                });

            "Then a get can be performed on a protected field"
                .Observation(() => Assert.Equal(0, proxy.ProtectedField));

            "Then a set can be performed on a protected field"
                .Assert(() =>
                {
                    proxy.ProtectedField = 1;
                    Assert.Equal(1, proxy.ProtectedField);
                });

            "Then a get can be performed on a badly named field"
                .Observation(() => Assert.Equal(0, proxy.BadlyNamedField));

            "Then a set can be performed on a badly named field"
                .Assert(() =>
                {
                    proxy.BadlyNamedField = 1;
                    Assert.Equal(1, proxy.BadlyNamedField);
                });

            "Then a get can be performed on a internal field"
                .Observation(() => Assert.Equal(0, proxy.InternalField));

            "Then a set can be performed on a internal field"
                .Assert(() =>
                {
                    proxy.InternalField = 1;
                    Assert.Equal(1, proxy.InternalField);
                });
        }