DynamicData не заполняет правильно тестирование данных при использовании объектов GRPCC#

Место общения программистов C#
Ответить
Anonymous
 DynamicData не заполняет правильно тестирование данных при использовании объектов GRPC

Сообщение Anonymous »

Я использую тест Visual Studio 2022 и MS. Для генерации кода из прото -файла я использую grpc.tools (2.69.0) и google.protobuf (3.29.3) nugets.
Я не знаю, как DynamicData функция Работает под капотом, но кажется, что он неправильно заполняет объект Step, когда код генерируется с помощью Protobuf Compiler.
case1: < /strong> < /p>
Step, element1 и element2 генерируются с помощью компилятора Protobuf. Когда Testmethod вызывается, элементы step являются нулевыми (см. Изображение ниже).
case2:
< br/> I вручную создавать шаг и element1 и element2 классы без компилятора Protobuf. В этом случае элементы step не являются нулевыми.
< /p>
ms test < /strong> < /p>
namespace TestProject
{
[TestClass]
public class UnitTest
{
[TestMethod]
[DynamicData(nameof(GetTestData), typeof(UnitTest), DynamicDataSourceType.Method)]
public void TestMethod(Step step)
{
}

public static IEnumerable GetTestData()
{
yield return new object[] { Step_Element1() };
yield return new object[] { Step_Element2() };
}

private static Step Step_Element1()
{
var step = new Step();
step.Elements.Add(new Element { Element1 = new Element1() });
return step;
}

private static Step Step_Element2()
{
var step = new Step();
step.Elements.Add(new Element { Element2 = new Element2() });
return step;
}
}
}

command.proto

syntax = "proto3";

message Step {
repeated Element elements = 1;
}

message Element1 {
}

message Element2 {
}

message Element {
oneof value {
Element1 element1 = 1;
Element2 element2 = 2;
}
}


Подробнее здесь: https://stackoverflow.com/questions/794 ... pc-objects
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»