Почему, когда все в xUnitTest показывает одинаковое, но тест не проходит?

#c# #unit-testing #asp.net-core #xunit

Вопрос:

Я хочу написать тест для этого метода :

 public static class JobHelper
{
    public static object ExtractMetaData(string entity, string message)
    {
        return new { entity, message };
    }
}
 

И вот мой тест xUnit:

 public class JobHelperTest
{

    [Theory]
    [InlineData("Name","BMW")]
    [InlineData("Model","2021")]
    [InlineData("Color","Black")]
    public void ExtractMetaDataTest(string entity,string message)
    {

        object expectedValue = new { entity, message };

        object result = JobHelper.ExtractMetaData(entity, message);

        Assert.Equal(expectedValue,result);
    }

}
 

все выглядит одинаково, но вот сообщение об ошибке повторной проверки:

введите описание изображения здесь

Комментарии:

1. Находятся JobHelper и JobHelperTest в разных сборках?

2. Что вы имеете в виду в разных сборках ?

3. В разных проектах? Связаны с разными .csprojs? Жить в разных библиотеках DLL?

4. JobHelper находится в разделе software.POS.Shared, а JobHelperTest -в разделе software.POS.Shared. Тест, они оба находятся в одном и том же решении.

5. (Причина в том, что при создании нового анонимного объекта компилятор должен сгенерировать тип и внедрить его в ваш проект. В вашем примере этот тип называется <>f__AnonymousType0 2 ). However, it has to do this individually for each project, so each project will have its own version of an anonymous type with the string properties сущностью` и message . Два таких объекта из разных проектов, следовательно, являются разными, несовместимыми объектами, которые просто случайно выглядят похожими)