public bool Execute(IDynamicDatabaseConnection dbConn, List loadObjects, out List result)
{
result = new List();
// Perform the load for each form grid
foreach (DynamicGrid grid in loadObjects)
{
// Execute the stored procedure to load the grid data
IEnumerable storedProcResponse = ExecuteGridDataLoadStoredProcedure(dbConn, storedProcedureName);
result.Add(new DynamicGridValue(grid, response));
}
}
return true;
}
Мой метод на C# выглядит так: [code]public bool Execute(IDynamicDatabaseConnection dbConn, List loadObjects, out List result) { result = new List();
// Perform the load for each form grid foreach (DynamicGrid grid in loadObjects) { // Execute the stored procedure to load the grid data IEnumerable storedProcResponse = ExecuteGridDataLoadStoredProcedure(dbConn, storedProcedureName);
// Retrieve data using Dapper var spResponse = dbConn.Query("StoredProcedureName", dynamicParameters, commandType: CommandType.StoredProcedure);
// Retrieve the output parameter var returnMessage = dynamicParameters.Get("@Return_Message"); var errorCode = dynamicParameters.Get(parameterResult);
// Check if there's an error message if (!string.IsNullOrEmpty(returnMessage)) { throw new DynamicFormException($"Stored Procedure Error: {returnMessage} (Code: {errorCode})"); }
return spResponse; } [/code] В моем модульном тесте [code][TestMethod] public void Should_ExecuteStoredProcedureAndReturnCorrectXmlResponse() { // Arrange var grid = new DynamicGrid { DataBindingTypeID = (int)GridDataBindingType.StoredProcedure, GridCode = "TestGrid", DataBindingGetDFStoredProcedureDefinitionID = 1 }; var gridDataSource = new DataSource(); var queryParameterValues = new Dictionary(); var strategy = new DynamicLoadStrategyGridData(grid, gridDataSource, DFPKey, USER_ID, USER_ACCESS_RIGHTS_IDS, queryParameterValues, PARENT_DFPKEY); var loadObjects = new List { grid };
var dbConnMock = A.Fake();
dynamic spResponse = new ExpandoObject(); spResponse.key = "Id"; spResponse.AdditionalData = "12"; List spResponseMock = new List() { spResponse };
// Act var result = strategy.Execute(dbConnMock, loadObjects, out _);
// Assert Assert.IsTrue(result); } [/code] Почему мой объект spResponse имеет count = 0, т. е. в нем ничего нет даже после установки макета? Как мне установить макет для [code]var spResponse = dbConn.Query( storedProcedureName, dynamicParameters, commandType: CommandType.StoredProcedure ); [/code] в этой строке тип возвращаемого значения для dbConn.Query — IEnumerable. ОБНОВЛЕНИЕ: p> Я тоже пробовал: [code]List spResponseMock = new List() { new Dictionary() { { "Id", 1 } } };
// Assign mock response to spResponse IEnumerable spResponse = spResponseMock;
A.CallTo(() => dbConnMock.Query(A._, A._, A._, A._, A._, A._)).Returns(spResponse); [/code] Но и это не удалось.
Мой метод на C# выглядит следующим образом:
public bool Execute(IDynamicDatabaseConnection dbConn, List loadObjects, out List result)
{
result = new List();
// Perform the load for each form grid
foreach (DynamicGrid grid in loadObjects)
{
//...
В моем проекте Android я использую androidx.paging и библиотеку модульных тестов макета для Kotlin. Как создать макет объекта DataSource.Factory в модульных тестах?
Я пытаюсь реализовать UT свой небольшой проект, и у меня возникла проблема.
Мое приложение использует простую многоуровневую архитектуру, и я не могу использовать UT на уровне сервиса.
На самом деле я пытаюсь имитировать класс CrudRepository из...