1

私はMoqでいくつかの単体テストを行っており、次と同等のことを行いたいと思います。

Location location = new Location();
LocationTimes locationTimes = new LocationTimes();
location.LocationTimes.Add(locationTimes);

だから私はこれを試しました:

var mockLocation = new Mock<Location>();
var mockLocationTime = new Mock<LocationTimes>();

mockLocationTime.SetupProperty(f => f.isEarlyHoursSupported, true);
mockLocationTime.SetupProperty(f => f.isEarlyHoursSupportedManual, true);

var mockLocationTimeList = new List<Mock<LocationTimes>>();
mockLocationTimeList.Add(mockLocationTime);

this.mockLocation1 = new Mock<Location>();
mockLocation1.SetupProperty(f => f.LocationTimes, mockLocationTimeList);

...しかし、mockLocationTimeListがmoqのリストになっているため、最後の行でエラーが発生します。

私はこれをどのように行うことになっていますか?

4

2 に答える 2

1

これはあなたのためにトリックをするはずです。

var mockLocation = new Mock<Location>(); 
var mockLocationTime = new Mock<LocationTimes>(); 

mockLocationTime.SetupProperty(f => f.isEarlyHoursSupported, true); 
mockLocationTime.SetupProperty(f => f.isEarlyHoursSupportedManual, true); 

var mockLocationTimeList = new List<LocationTimes>(); 
mockLocationTimeList.Add(mockLocationTime.Object); 

this.mockLocation1 = new Mock<Location>(); 
mockLocation1.SetupProperty(f => f.LocationTimes, mockLocationTimeList);

さて、これListは実際にはですList<LocationTimes>が、各LocationTimesオブジェクトはモックです。

于 2012-10-16T17:11:02.153 に答える
0

これを機能させる唯一の方法は次のとおりです。

var mockLocation = new Mock<Location>();
var mockLocationTime = new Mock<LocationTimes>();

mockLocationTime.SetupProperty(f => f.isEarlyHoursSupported, true);
mockLocationTime.SetupProperty(f => f.isEarlyHoursSupportedManual, true);

this.mockLocation1 = new Mock<Location>();
mockLocation1.SetupProperty(f => f.LocationTimes, new List<LocationTimes>());
mockLocation1.Object.LocationTimes.Add(mockLocationTime.Object);
于 2012-10-17T09:37:21.667 に答える