Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# TDD-为什么Assert.AreName会通过?_C#_Tdd_Mstest_Assert - Fatal编程技术网

C# TDD-为什么Assert.AreName会通过?

C# TDD-为什么Assert.AreName会通过?,c#,tdd,mstest,assert,C#,Tdd,Mstest,Assert,我有一个测试方法 [TestMethod] public void MainViewModel_PropertiesReflectDataEntityProperties() { // Arrange var facilityDataEntity = MockRepository.GenerateStub<FacilityDataEntity>(); var shopOrderDataEntity = MockRepository.GenerateStub&l

我有一个测试方法

[TestMethod]
public void MainViewModel_PropertiesReflectDataEntityProperties()
{
    // Arrange
    var facilityDataEntity = MockRepository.GenerateStub<FacilityDataEntity>();
    var shopOrderDataEntity = MockRepository.GenerateStub<ShopOrderDataEntity>();

    // Act
    MainViewModel mainViewModel = new MainViewModel(facilityDataEntity, shopOrderDataEntity);

    // Assert
    Assert.AreSame(facilityDataEntity.Value, mainViewModel.FacilityValue);
}
[TestMethod]
public void MainViewModel_属性reflectDataEntityProperties()
{
//安排
var facilityDataEntity=MockRepository.generateSub();
var shopOrderDataEntity=MockRepository.GenerateSub();
//表演
MainViewModel MainViewModel=新的MainViewModel(facilityDataEntity、shopOrderDataEntity);
//断言
Assert.AreName(facilityDataEntity.Value,mainViewModel.FacilityValue);
}
。。。测试通过了。但是,我还没有实现DataEntity属性到MainViewModel属性的映射!这怎么可能?我认为Areame检查两个引用是否指向同一个实例

public class MainViewModel
{
    private readonly FacilityDataEntity facilityDataEntity;
    private readonly ShopOrderDataEntity shopOrderDataEntity;

    public MainViewModel(FacilityDataEntity facilityDataEntity)
    {
        this.facilityDataEntity = facilityDataEntity;
    }

    public MainViewModel(FacilityDataEntity facilityDataEntity, ShopOrderDataEntity shopOrderDataEntity)
    {
        this.facilityDataEntity = facilityDataEntity;
        this.shopOrderDataEntity = shopOrderDataEntity;
    }

    public ShopOrderDataEntity ShopOrderDataEntity
    {
        get { return shopOrderDataEntity; }
    }

    public FacilityDataEntity FacilityDataEntity
    {
        get { return facilityDataEntity; }
    } 

    public int ShopOrder { get; set; }

    public decimal RequiredQuantity { get; set; }

    public string ItemCode { get; set; }

    public string ItemDescription { get; set; }

    public string FacilityValue { get; set; }

    public string FacilityLabel { get; set; }

    public static IEnumerable<MainViewModel> TranslateDataEntityList(IEnumerable<FacilityDataEntity> facilityDataEntityList)
    {
        foreach (FacilityDataEntity facilityDataEntity in facilityDataEntityList)
        {
            yield return new MainViewModel(facilityDataEntity);
        }
    }

    public static IEnumerable<MainViewModel> TranslateDataEntityList(FacilityDataEntity facilityDataEntity, IEnumerable<ShopOrderDataEntity> shopOrderDataEntityList)
    {
        foreach (ShopOrderDataEntity shopOrderDataEntity in shopOrderDataEntityList)
        {
            yield return new MainViewModel(facilityDataEntity, shopOrderDataEntity);
        }
    }
}
public类主视图模型
{
专用只读设施数据实体设施数据实体;
私有只读ShopOrderDataEntity ShopOrderDataEntity;
公共主视图模型(FacilityDataEntity FacilityDataEntity)
{
this.facilityDataEntity=facilityDataEntity;
}
公共主视图模型(FacilityDataEntity FacilityDataEntity、ShopOrderDataEntity ShopOrderDataEntity)
{
this.facilityDataEntity=facilityDataEntity;
this.shopOrderDataEntity=shopOrderDataEntity;
}
公共ShopOrderDataEntity ShopOrderDataEntity
{
获取{return shopOrderDataEntity;}
}
公共设施数据实体设施数据实体
{
获取{return facilityDataEntity;}
} 
public int ShopOrder{get;set;}
公共十进制必需数量{get;set;}
公共字符串ItemCode{get;set;}
公共字符串ItemDescription{get;set;}
公共字符串工具值{get;set;}
公共字符串FacilityLabel{get;set;}
公共静态IEnumerable TranslatedTaEntityList(IEnumerable facilityDataEntityList)
{
foreach(FacilityDataEntity FacilityDataEntity列表中的FacilityDataEntity FacilityDataEntity)
{
返回新的MainViewModel(facilityDataEntity);
}
}
公共静态IEnumerable TranslatedDataEntityList(FacilityDataEntity FacilityDataEntity,IEnumerable shopOrderDataEntityList)
{
foreach(ShopOrderDataEntity shopOrderDataEntityList中的ShopOrderDataEntity)
{
返回新的MainViewModel(facilityDataEntity、shopOrderDataEntity);
}
}
}

在这种情况下,我会说它比较null和null,两者是相同的。

我猜这是因为它们都是
null

在这一切的背后,这些测试只是使用:

true如果objA与objB是同一实例,或者如果两者都null;否则,false


您是否调试了
facilityDataEntity.Value
mainViewModel.FacilityValue
的值Assert.ReferenceEquals的问题是一样的,现在它们可能都是
null
。我已经调试了测试,是的,它们都是null,但我没有做arequal,所以它们怎么可能是同一个实例?或者它们为null会使它们成为相同的实例,或者更少的实例或者其他什么?它们不是相同的实例。它们都是一样的,缺少一个实例。