私は、Web APIを持っていると私はそうのようなエンドポイントを暴露しています:のIQueryableユニットまたは統合テスト
API /ホリデー名= {名前}
これはのためのコントローラのgetメソッドのですか?ウェブAPI:
public IQueryable<Holiday> GetHolidayByName(string name)
{
return db.Holiday.Where(n => string.Equals(n.Name, name));
}
名前が等しいかどうかを確認するユニット/統合テストを作成するにはどうすればよいですか?私は結果がnullではないが、私は名前を確認することができますどのように混乱したビットをチェックすることができます等しい:すべての
[TestMethod]
public void GetHoliday_GetHolidayByName()
{
// Arrange
HolidaysController controller = new HolidaysController();
// Act
IQueryable<Holiday> actionResult = controller.GetHolidayByName("Spain");
//Assert
Assert.IsNotNull(actionResult);
//any attempt to check names are equal results in a fail
//For instance this fails
var result = controller.GetHolidayByName("Spain") as OkNegotiatedContentResult<Holiday>;
Assert.AreEqual("Spain", result.Content.Name);
}
モック 'db.Holiday'をハードコードしてアイテムを作成し、' GetHolidayByName'を呼び出してその結果を確認してください。 – Jonesopolis
http://blog.ploeh.dk/2012/03/26/IQueryableTisTightCoupling/ –