新しいプロジェクトを開始したばかりで、ソリューションには単体テストがありません。だから私は単体テストで平均以下のスキルを向上させ、アプリケーションを学ぶための良い方法は、私が順番にテストを書くことだと思った。Xunitメソッドが期待通りに動作しない
は、私は私は自分自身が答えを見つけることができないような答えで検索しましたので、これは簡単な質問かもしれません前のxUnitとあまり行っていません。
私はテストしようとしているwebapiプロジェクトです。コントローラは、例えば、ロギングのためのその方法を含むベースコントローラを有する。私のコントローラから
public class BaseController : ApiController
{
private readonly ILog _log;
public BaseController(ILog log)
{
_log = log;
}
[ApiExplorerSettings(IgnoreApi = true)]
public virtual void Log(Enums.RequestType requestType, string detail)
{
_log.Info(string.Format("{0} | {1}",requestType, detail));
}
public virtual async Task<ActionResult<MyDetail>> Get([FromUri]long id)
{
Enums.RequestType requestType = Enums.RequestType.GET;
Log(requestType, "start called");
var card = await _repository.FindItemAsync(id);
Log(requestType, "thats a rap");
}
私のテストでは、これまでのように見える
[Fact()]
public void TestMyDetailsReturnsDetailAndLogs()
{
var detail = MockDetail();
_myController = new Mock<MyDetailController>(_repository.Object, _logging.Object);
_myController.Setup(m => m.Log(It.IsAny<Enums.RequestType>(),
It.IsAny<string>()));
_repository.Setup(x => x.FindItemAsync(It.IsAny<long>())
.ReturnsAsync(detail);
var controllerResult = _myController.Object.Get(detail.Id);
_myController.VerifyAll();
var negotiatedResult = controllerResult.Result;
Assert.NotNull(negotiatedResult);
追加情報:次のセットアップが一致しなかった。
MyController m => m.Log(It.IsAny<RequestType>(), It.IsAny<String>())
2つの質問、なぜこのメッセージが表示されますか?私はセットアップを持っているようm.Log
私のコントローラとリポジトリ内のI私のブレークポイントが打たれるべきか?
どのようなヘルプが素晴らしいでしょう!