Вы не должны проверять, что ToCreate
сохраняют данные, используя ToGet
или ToGet
, создавая данные через ToCreate
.Причина в том, что ваш UT не изолирован и вы не проверяете одно поведение.Также ваш UT может пройти в тех случаях, когда он не должен.
Что вы должны сделать: Для каждого из методов создайте тестовые наборы, затем для каждого тестового набора создайте UT и, если есть взаимодействие сконтекст БД проверяет, что взаимодействие произошло правильно.
Например, успешно сохранится один объект:
[Fact]
public void ToCreate_Persist_One_Oblect(){
//arrange:
var sut = new Repository(context);
//act
sut.ToCreate(new XYzClass(){
... some properties
});
//assert:
var newlyCreatedXyz = context.XYZ.FirstOfDefualt(/*get the item*/);
Assert.NotNull(newlyCreatedXyz);
/*Then asset the properties*/
}
Если вы собираетесь использовать фальшивый фреймворк вместо БД в памяти, тогдаВы можете высмеять DbContext
и проверить взаимодействие.