IHttpActionresult コントローラーのテスト メソッドを作成しています。ActionResult は NULL ではなく、必要なデータが含まれています (Customer.ID = 986574123)。ただし、2 行目では、変数 CreatedResult が null です。CreatedResult に適切なデータを返してほしい。Moq フレームワークも使用しています。それが重要かどうかはわかりません。何かご意見は?ActionResult からさらにデータが必要な場合は、以下にコメントしてください。どうも。
試験方法コード:
var CustomerRepository = new Mock<ICustomerRepository>();
CustomerRepository.Setup(x => x.Add()).Returns(new Customer { ID = 986574123, Date = DateTime.Now});
var Controller = new CustomerController(CustomerRepository.Object, new Mock<IProductRepository>().Object);
var config = new HttpConfiguration();
var request = new HttpRequestMessage(HttpMethod.Post, "http://localhost:38306/api/CreateCustomer");
var route = config.Routes.MapHttpRoute("DefaultApi", "api/{controller}");
var routeData = new HttpRouteData(route, new HttpRouteValueDictionary { { "controller", "Customers" } });
Controller.ControllerContext = new HttpControllerContext(config, routeData, request);
Controller.Request = request;
Controller.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = config;
IHttpActionResult ActionResult = Controller.CreateCustomer();
// Null occurs here
var CreatedResult = ActionResult as CreatedAtRouteNegotiatedContentResult<Customer>;
CreateCustomer Add メソッド:
[Route("api/createcustomer")]
[HttpPost]
public IHttpActionResult CreateCustomer()
{
Customer NewCustomer = CustomerRepository.Add();
return Created(Request.RequestUri + "/" + NewCustomer.ID.ToString(), new { customerID = NewCustomer.ID });
}
アクション結果データ:
- Location {http://localhost:38306/api/createcustomer/986574123} System.Uri
AbsolutePath "/api/createcustomer/986574123" string
AbsoluteUri "http://localhost:38306/api/createcustomer/986574123" string
Authority "localhost:38306" string
DnsSafeHost "localhost" string
Fragment "" string
Host "localhost" string
HostNameType Dns System.UriHostNameType
IsAbsoluteUri true bool
IsDefaultPort false bool
IsFile false bool
IsLoopback true bool
IsUnc false bool
LocalPath "/api/createCustomer/986574123" string
OriginalString "http://localhost:38306/api/createcustomer/986574123" string
PathAndQuery "/api/createCustomer/986574123" string
Port 38306 int
Query "" string
Scheme "http" string
+ Segments {string[4]} string[]
UserEscaped false bool
UserInfo "" string