私はMoqを初めて使用し、一般的にテストしているので、ここに私の初心者のQがあります.リクエストのステータスプロパティがMoqを使用して設定されているかどうかをテストするにはどうすればよいですか?
public class DudeManager
{
private readonly IDRepository _repo;
public DManager(IDRepository repo)
{
_repo = repo;
}
public void Create(Request r)
{
r.Status = Status.Submitted;
_repo.AddRequest(r);
}
}
以下よりも良いアプローチはありますか?多分VerifySetを使用していますか?
[TestMethod]
public void AddingNewRequestSetsStatusToSubmitted()
{
//Arrange
var mock = new Mock<IDRepository>();
var mockRequest = new Mock<Request>();
var dManager = new DManager(mock.Object);
//Act
dManager.Create(mockRequest.Object);
//Assert
Assert.AreEqual(Status.Submitted, mockRequest.Object.Status);
}
編集:これは、すべての役立つ提案の後に使用することになったアプローチです:
//Arrange
var request = new Request();
var mock = new Mock<IDRepository>();
var dManager = new DManager(mock.Object);
mock.Setup(x => x.AddRequest(It.IsAny<Request>()));
//Act
dManager.QueueNewRequest(request);
//Assert
Assert.AreEqual(RequestStatus.Submitted, request.Status);
このアプローチは私には正しいようです。誰かが違うと思いますか?