lundi 20 juillet 2020

Error CS0118 'TestBuilder' is a namespace but is used like a type

I'm working on Unit test. I create TestBuilder class, where I create method SetupTown method. When I tried call this method in my main test class - i have error( Error CS0118'TestBuilder' is a namespace but is used like a type). I read about it and recommend to call a class with method. I tried do it, but It doesn't help.

public partial class TownServiceTests

 public partial class TownServiceTests
    {
        private class TestBuilder
        {
            public Mock<ITownRepository> MockTownRepository { get; set; }

            //public Mock<IClientViewModelBuilder> MockClientPropertyModelBuilder { get; set; }

            public Mock<IMapper> MockMapper { get; set; }

            public TestDataGenerator TestDataGenerator;

            private readonly string _jsonDataPath = @"../../../TestData/Town/TownTestData.json";

            private string _jsonDataKey;

            private TownViewModel Towns { get; set; }

            public TestBuilder(string jsonDataKey)
            {
                MockTownRepository = new Mock<ITownRepository>();

                //MockClientPropertyModelBuilder = new Mock<IClientViewModelBuilder>();

                MockMapper = new Mock<IMapper>();

                TestDataGenerator = new TestDataGenerator(_jsonDataPath);

                _jsonDataKey = jsonDataKey;

                TestDataGenerator.LoadData(_jsonDataKey);
            }

            public ITownService Build()
            {
                return new TownService(MockTownRepository.Object,
                                        MockMapper.Object);
            }

            public TestBuilder SetupTowns()
            {
                var towns = TestDataGenerator.GetTestData<Town>(_jsonDataKey, "Towns");

                MockTownRepository.Setup(r => r.InsertTown(It.IsAny<string>()))    
                                    .ReturnsAsync(towns.FirstOrDefault().Id);               

                return this;
            }
        }
    }
}

Please check method public TestBuilder SetupTowns

Here my TestClass

    [TestClass]
    public partial class TownServiceTests
    {
        [TestMethod]
        public async Task ValidInsertTown()
        {
            var builder = new TestBuilder("Data").SetupTowns; //Problem

            var service = builder.Build();

            var expectedTowns = builder.TestDataGenerator.GetTestData<Town>("Data", "Towns");

            var result = await service.InsertTown(expectedTowns);

            Assert.IsNotNull(result);
            Assert.IsNull(result);
        }
    }

Could toy tell me what I do wrong?

Aucun commentaire:

Enregistrer un commentaire