私はすでに回答した質問を見てみましたが、私の場合にはなじみのないものなので、このスレッドを開いています。NUnit 3 - TestCaseは 'equal'の場合でもExpectedResultを検証しません。
私はVS 2015の下でNUnit 3を使用しています。ユニットテストをした後、間違ったことが実現しました。期待される結果は、実際には、私が受け取ると期待していたものと同じではありませんが、NUnitはそれを検証しませんでした。
ですか?
以下は、テストを実行するコードです。
public static class DataFactory
{
public static class Dummy
{
public static string ContractUrl = "";
public static IEnumerable Objects
{
get
{
yield return new TestCaseData(ContractUrl, true, false).Returns(false);
yield return new TestCaseData(ContractUrl, "", "Ciao").Returns("Ciao");
yield return new TestCaseData(ContractUrl, Payload.Dummy.TrueRequest, Payload.Dummy.TrueResponse).Returns(Payload.Dummy.TrueResponse);
}
}
}
}
public static class Payload
{
public static class Dummy
{
public static GetItemsRequest TrueRequest
{
get
{
return new GetItemsRequest() { };
}
}
public static GetItemsResponse TrueResponse
{
get
{
return new GetItemsResponse()
{
Result = true
};
}
}
}
}
[DataContract]
public class GetItemsRequest : ICloneable<GetItemsRequest>
{
[DataMember]
public string QuoteCode { get; set; }
[DataMember]
public int QuoteRevision { get; set; }
[DataMember]
public DocumentFormat Format { get; set; }
[DataMember]
[Description("Nel caso sia False devo inizializzare l'ambiente, ovvero scaricare tutti i documenti in tutte le lingue." +
"Viene pilotato dal CRM, che setta a False o True la property nel Request Payload.")]
public bool GetContent { get; set; }
[DataMember]
[Description("Viene usato per indicare se nel GetContent deve essere passato il percorso del documento "+
"(GetRemotePath = true) oppure il contenuto del documento.")]
public bool GetRemotePath { get; set; }
//Language Code
[DataMember]
public string Language { get; set; }
[DataMember]
public List<Product> Products { get; set; }
[System.Diagnostics.DebuggerStepThrough]
public GetItemsRequest Clone()
{
return (GetItemsRequest)Cloning.DeepCopy(this);
}
}
[DataContract]
public class Product
{
[DataMember]
public string ProductCode { get; set; }
[DataMember]
public string PositionCode { get; set; }
}
[DataContract]
public class GetItemsResponse
{
[DataMember]
public bool Result { get; set; }
[Description("Messaggio d'errore. Si presenta solo se Result = false.")]
[DataMember]
public string Message { get; set; }
[DataMember]
public List<TDSContent> Contents { get; set; }
}
[DataContract]
public class TDSContent : Product
{
[DataMember]
public string Language { get; set; }
[DataMember]
public string TextContent { get; set; }
}
、以下の結果得られ単体テスト
[Test]
[TestCaseSource(typeof(DataFactory.Dummy), "Objects")]
public object Dummy(string contractUrl, object payload, object expectedResult)
{
return expectedResult;
}
:
が、これは正常な動作ですか? 期待される結果は、値ではなく参照で一致する必要がありますか?
このページは助けることができる、比較のためのデフォルトの動作を上書きするには、次の – Lorenzo