Assert.AreEqual に失敗しました。<System.String[]> が必要ですが、<System.String[]> が指定されました。
▼エラー
Microsoft.VisualStudio.TestTools.UnitTesting.AssertFailedException はユーザー コードによってハンドルされませんでした。
HResult=-2146233088
Message=Assert.AreEqual に失敗しました。<System.String[]> が必要ですが、<System.String[]> が指定されました。
Source=Microsoft.VisualStudio.QualityTools.UnitTestFramework
StackTrace:
場所 Microsoft.VisualStudio.TestTools.UnitTesting.Assert.HandleFail(String assertionName, String message, Object[] parameters)
場所 Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreEqual[T](T expected, T actual, String message, Object[] parameters)
場所 Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreEqual[T](T expected, T actual)
場所 WebApplication.Tests.Controllers.ApiBeginControllerTest.GET() 場所 d:\dev\sample\20141119_WebMVC\20141128_WebApplication\WebApplication.Tests\Controllers\ApiBeginControllerTest.cs:行 33
InnerException:
▼使用しているコード
Web API(ApiControllerのメソッド)
// GET api/ApiBegin
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
テストクラス
[TestMethod]
public void GET()
{
//List<string> expected = new List<string> { "value1", "value2" };
//var expected = new String[] { "value1","value2"};
IEnumerable<string> expected = new String[] { "value1", "value2" };
ApiBeginController controller = new ApiBeginController();
//string[] ret = controller.Get() as string[];
IEnumerable<string> ret = controller.Get() as IEnumerable<string>;
Assert.AreEqual(expected, ret);
//Assert.AreEqual(expected, new string[] { "value1", "value2" });
//Assert.AreEqual(expected, expected); //成功
//Assert.AreEqual(ret, ret); //成功
}
⇒CollectionAssertがあるのですね。。。。
[TestMethod]
public void GET()
{
var expected = new String[] { "value1","value2"};
ApiBeginController controller = new ApiBeginController();
string[] ret = controller.Get() as string[];
CollectionAssert.AreEqual(expected, ret);
}
0 件のコメント:
コメントを投稿