I have a service which works fine when executed from browser, but when unit tested it fails.
The unit test
[TestMethod]
public void TestGetAllCustomFields()
{
int totalCustomFields = DummyData.GetDummyCustomFields().Count;
var customFieldsDbSet = HelperMethods.CreateDbSet(DummyData.GetDummyCustomFields());
var ctx = Substitute.For<DataContext>();
ctx.CustomFieldsActive.Returns(customFieldsDbSet);
var target = new CustomFieldsService(ctx, reportService: null);
var result = target.GetAllCustomFields();
Assert.IsNotNull(result);
Assert.AreEqual(totalCustomFields, result.Count);
}
The GetAllCustomFields()
public List<CustomField> GetAllCustomFields()
{
var allCustomFields = _ctx.CustomFieldsActive.AsNoTracking().OrderBy(f => f.Name).ToList();
return allCustomFields.ToList();
}
and GetDummyCustomFields() is a simple public static List<CustomField>
method.
What am I missing?