2017-05-12 58 views
2

我有使用FluentValidations的API。具有流暢驗證的集成測試API

我正在編寫集成測試,並希望斷言錯誤的請求響應包含錯誤字段名稱和消息。我想檢查字段名和消息,並確保它們與從fluentvalidations返回的相同。我得到一個JSON響應充滿驗證錯誤,但不知道我應該反序列化到哪個對象。

response.StatusCode.Should().Be(HttpStatusCode.BadRequest); 

var result = JsonConvert.DeserializeObject<?>(await response.Content.ReadAsStringAsync()); 
result.Should().BeOfType<?>(); 
result.Should().NotBeNull(); 
result.Should().HaveCount(something); 

樣本響應是fluentvalidation響應

{ 
    "Name": [ 
    "Name is required.", 
    "Name length cannot be more that 255 chars" 
    ], 
    "ListTypeId": [ 
    "Invalid listtypeid" 
    ], 
    "PartyRoleId": [ 
    "Invalid partyroleid" 
    ] 
} 
+0

給什麼樣的JSON響應的內容看起來像一個例子 – Nkosi

+0

已更新。它的基本原始響應來自流利驗證 – krishna

回答

1

鑑於所提供的JSON例如IDictionary<string,string[]>應能滿足該模型

response.StatusCode.Should().Be(HttpStatusCode.BadRequest); 
var json = await response.Content.ReadAsStringAsync(); 
var result = JsonConvert.DeserializeObject<IDictionary<string,string[]>>(json); 
result.Should().BeOfType<IDictionary<string,string[]>>(); 
result.Should().NotBeNull(); 
result.Should().HaveCount(something); 
+0

啊。非常感謝你..我很抱歉我放棄了這麼早..我應該已經知道了。 – krishna