mardi 8 septembre 2020

Unit Test Static methods in a class using MS Fakes C#

Here is the class I am trying to mock. Helper class that has a static method. Which takes in a dataTable.

    {
        public static ArrayList GetDataTableColumns(DataTable dataTable)
        {
            if (dataTable == null)
            {
                throw new ArgumentNullException(nameof(dataTable));
            }

            var columnsCount = dataTable.Columns.Count;
            var columnHeadings = new ArrayList();
            for (var i = 0; i < columnsCount; i++)
            {
                var dataColumn = dataTable.Columns[i];
                columnHeadings.Add(dataColumn.ColumnName.ToString());
            }
            return columnHeadings;
        }
    }

Tried using ShimsContext. Here is the snippet I have come up with. Want to mock when datatable is null and not null.

public void GivenDatatableIsNUllShouldThrowNullException()
        {
            var expected = new ArrayList();
            //ARRANGE
            using (ShimsContext.Create())
            {
                dataTableHelpers = new DataTableHelpers();

                //ACT

                var result = ShimDataTableHelpers.GetDataTableColumnsDataTable = (s) =>
                {
                    Should.Throw<ArgumentNullException>(() =>
                    {
                    });
                    throw new ArgumentNullException(nameof(s));
                };
                //Assert

                Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotEqual(result, expected);
            }
        }

Aucun commentaire:

Enregistrer un commentaire