2

テスト方法があります...

[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);
}

...そしてテストはパスします。ただし、DataEntity のプロパティから MainViewModel のプロパティへのマッピングはまだ実装していません。どうすればいいの?AreSame は、2 つの参照が同じインスタンスを指しているかどうかをチェックすると思いました。

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);
        }
    }
}
4

3 に答える 3

7

そのすべての下で、これらのテストは単に使用していObject.ReferenceEqualsます:

objAobjBと同じインスタンスであるか、両方がnullの場合はtrue。それ以外の場合はfalse

于 2013-03-13T08:30:55.837 に答える
3

どちらもnull.

于 2013-03-13T08:21:18.643 に答える
2

この場合、null と null を比較すると言えますが、どちらも同じです。

于 2013-03-13T08:18:09.257 に答える