2
我有以下接口:如何嘲笑從另一個模擬返回屬性的界面?
interface IManufacturing
{
IJobApi JobApi {get;}
}
interface IJobApi
{
IList<JobSpec> GetSpecs (string wo, string name);
}
我有一個使用IManufacturing並調用GetSpecs()像這樣一類:
var specs = _manufacturing.JobApi.GetSpecs (wo, name);
設置我的嘲笑,如:
var jobApi = A.Fake<IJobApi>();
A.CallTo (() => jobApi.GetSpecs (It.IsAny<string>(), It.IsAny<string>()))
.Invokes (() => System.Diagnostics.Trace.WriteLine("GetSpecs called!"))
.Returns (new List<JobSpec>
{
new JobSpec("blablabla", "0.125", "something")
});
var manufacturing = A.Fake<IManufacturing>();
A.CallTo (() => manufacturing.JobAPI)
.Invokes (() => System.Diagnostics.Trace.WriteLine ("JobAPI called!"))
.Returns (jobApi);
運行測試後,我只能在輸出中看到「JobAPI called」字符串。 因此,GetSpecs()不會被模擬,而且調用者會拋出,因爲它預期了一個規格列表,而它收到一個空字符串...
這裏有什麼可能是罪魁禍首?
謝謝。
1誠實。我認爲人們仍然可以從這樣的事情中學習。 – 2012-12-27 14:55:09