Пример #1
0
        public void DoMutate_Skips_Writes_In_Dispose()
        {
            var assembly = CreateTestAssembly();

            string tempAssemblyFileName = GetTempAssemblyFileName();

            assembly.Write(tempAssemblyFileName);
            var module = new Module(tempAssemblyFileName);

            module.LoadDebugInformation();

            var method = module.Definition
                         .Types.Single(t => t.Name == "TestClass")
                         .Methods.Single(t => t.Name == "TestMethod");

            var mutator = new VariableWriteTurtle();
            IList <MutantMetaData> mutations = mutator
                                               .Mutate(method, module, method.Body.Instructions.Select(i => i.Offset).ToArray()).ToList();

            Assert.AreEqual(1, mutations.Count);
            string expectedMessage = string.Format(
                "{0:x4}: write substitution Int32.V_0 => Int32.V_2",
                _mutatedInstruction.Offset);

            StringAssert.EndsWith(expectedMessage, mutations[0].Description);
        }
Пример #2
0
        public void DoMutate_Returns_No_Results_As_Appropriate()
        {
            var module = new Module(Assembly.GetExecutingAssembly().Location);

            module.LoadDebugInformation();
            var method = module.Definition
                         .Types.Single(t => t.Name == "VariableWriteClassUnderTest")
                         .Methods.Single(t => t.Name == "AddWithoutPointlessNonsense");

            var mutator = new VariableWriteTurtle();
            IList <MutantMetaData> mutations = mutator
                                               .Mutate(method, module, method.Body.Instructions.Select(i => i.Offset).ToArray()).ToList();

            Assert.AreEqual(0, mutations.Count);
        }