タグ付けされた質問 「unit-testing」

ユニットテストは、ソースコードの個々のユニットをテストして、それらが使用に適しているかどうかを判断する方法です。

3
Moqを使用して単体テストの非同期メソッドをモックする
Web API呼び出しを行うサービスのメソッドをテストしています。HttpClientローカルでWebサービス(ソリューションの別のプロジェクトにある)も実行している場合は、単体テストで通常の方法を使用するとうまくいきます。 ただし、変更をチェックインすると、ビルドサーバーはWebサービスにアクセスできないため、テストは失敗します。 私は、ユニットテスト用にIHttpClientインターフェイスを作成し、アプリケーションで使用するバージョンを実装することで、これを回避する方法を考案しました。単体テストでは、モック化された非同期postメソッドを使用して、モック化されたバージョンを完成させます。ここで問題が発生しました。HttpStatusResultこの特定のテストに対してOKを返したいのですが。別の同様のテストでは、悪い結果が返されます。 テストは実行されますが、完了することはありません。待ちに待っています。私は非同期プログラミング、デリゲート、Moq自体に不慣れで、しばらくの間SOとグーグルを検索してきましたが、まだこの問題を乗り越えられないようです。 これが私がテストしようとしている方法です: public async Task<bool> QueueNotificationAsync(IHttpClient client, Email email) { // do stuff try { // The test hangs here, never returning HttpResponseMessage response = await client.PostAsync(uri, content); // more logic here } // more stuff } これが私の単体テスト方法です: [TestMethod] public async Task QueueNotificationAsync_Completes_With_ValidEmail() { Email email …

4
Test InitメソッドのHttpContext.Currentのモック
作成したASP.NET MVCアプリケーションに単体テストを追加しようとしています。単体テストでは、次のコードを使用します。 [TestMethod] public void IndexAction_Should_Return_View() { var controller = new MembershipController(); controller.SetFakeControllerContext("TestUser"); ... } 次のヘルパーを使用して、コントローラーコンテキストをモックします。 public static class FakeControllerContext { public static HttpContextBase FakeHttpContext(string username) { var context = new Mock<HttpContextBase>(); context.SetupGet(ctx => ctx.Request.IsAuthenticated).Returns(!string.IsNullOrEmpty(username)); if (!string.IsNullOrEmpty(username)) context.SetupGet(ctx => ctx.User.Identity).Returns(FakeIdentity.CreateIdentity(username)); return context.Object; } public static void SetFakeControllerContext(this Controller controller, string …

6
「非仮想(VBでオーバーライド可能)メンバーの設定が無効です...」というメッセージの例外が表示されるのはなぜですか?
ブール型を返す非仮想メソッドをモックする必要がある単体テストがあります public class XmlCupboardAccess { public bool IsDataEntityInXmlCupboard(string dataId, out string nameInCupboard, out string refTypeInCupboard, string nameTemplate = null) { return IsDataEntityInXmlCupboard(_theDb, dataId, out nameInCupboard, out refTypeInCupboard, nameTemplate); } } だから私はXmlCupboardAccessクラスのモックオブジェクトがあり、以下に示すように私のテストケースでこのメソッドのモックをセットアップしようとしています [TestMethod] Public void Test() { private string temp1; private string temp2; private Mock<XmlCupboardAccess> _xmlCupboardAccess = new Mock<XmlCupboardAccess>(); _xmlCupboardAccess.Setup(x => …
176 c#  unit-testing  moq 

14
rspecでのモジュールのテスト
rspecでモジュールをテストする際のベストプラクティスは何ですか?いくつかのモデルに含まれるモジュールがいくつかありますが、今のところは、各モデルのテストが重複しているだけです(違いはほとんどありません)。乾かす方法はありますか?
175 ruby  unit-testing  rspec 

6
pytestでコンソールに出力する方法は?
でTDD(テスト駆動開発)を使用しようとしていますpytest。 私が使用するときにコンソールにpytestはありません。printprint 私はpytest my_tests.pyそれを実行するために使用しています。 はdocumentationデフォルトで動作するはずだと言っているようです:http : //pytest.org/latest/capture.html だが: import myapplication as tum class TestBlogger: @classmethod def setup_class(self): self.user = "alice" self.b = tum.Blogger(self.user) print "This should be printed, but it won't be!" def test_inherit(self): assert issubclass(tum.Blogger, tum.Site) links = self.b.get_links(posts) print len(links) # This won't print either. 標準出力コンソールには何も出力されません(通常の進行状況と、合格/不合格となったテストの数だけ)。 そして、私がテストしているスクリプトにはprintが含まれています。 class …

5
カスタムDjango manage.pyコマンドをテストドライバーから直接呼び出すにはどうすればよいですか?
データベーステーブルでバックエンド操作を行うDjango manage.pyコマンドの単体テストを記述したいと思います。コードから管理コマンドを直接呼び出すにはどうすればよいですか? manage.py testを使用して設定されたテスト環境(テストデータベース、テスト用ダミーメールアウトボックスなど)を使用できないため、tests.pyからオペレーティングシステムのシェルでコマンドを実行したくありません。

30
Visual Studio 2015/2017/2019 Test RunnerがxUnit v2テストを検出しないのはなぜですか
この投稿を改善したいですか?この質問に対する詳細な回答を提供してください。これには、引用と、回答が正しい理由の説明が含まれます。詳細が不十分な回答は編集または削除される場合があります。 更新:2019を追加。検出/ランナー統合メカニズムは2017および2015と同じであるため、問題が発生する可能性のある重要な点は同じです。 xUnitランナーがテストを見つけられない理由を読みました。これは、xUnitがテストを見つけられない理由をカバーしていますが、私の問題は異なります。(他の環境でも動作しますが、これは私のマシンのようです)-Visual Studio 2015 [Community Edition]のVisual Studio Test Runner は、私のテストをまったく表示していません。私はリモートでエキサイティングなことは何もしていません。テストはデスクトップ上のxUnit.net v2をターゲットにしています。 [出力]ウィンドウを確認しましたが、[ タブからの出力を表示]の[ テスト]には何も表示されません。

30
テスト方法が決定的ではありません:テストは実行されませんでした。エラー?
テストクラスがあり、以下にテストクラスのサンプルテストを投稿しました namespace AdminPortal.Tests.Controller_Test.Customer { [TestClass] public class BusinessUnitControllerTests { private IBusinessUnitRepository _mockBusinessUnitRepository; private BusinessUnitController _controller; [TestInitialize] public void TestInitialize() { _mockBusinessUnitRepository = MockRepository.GenerateMock<IBusinessUnitRepository>(); _controller = new BusinessUnitController(_mockBusinessUnitRepository); } [TestCleanup] public void TestCleanup() { _mockBusinessUnitRepository = null; _controller.Dispose(); _controller = null; } #region Index Action Tests [TestMethod] public void Index_Action_Calls_GetAllBusinessUnit() { …

7
Moqによる拡張メソッドのモック
既存のインターフェースがあります... public interface ISomeInterface { void SomeMethod(); } ミックスインを使用してこのインターフェースを拡張しました... public static class SomeInterfaceExtensions { public static void AnotherMethod(this ISomeInterface someInterface) { // Implementation here } } 私はテストしたいこれを呼び出すクラスがあります... public class Caller { private readonly ISomeInterface someInterface; public Caller(ISomeInterface someInterface) { this.someInterface = someInterface; } public void Main() { someInterface.AnotherMethod(); } } …

9
ASP.Net MVCでコントローラーの要求をモックする方法は?
ASP.Net MVCフレームワークを使用したC#のコントローラーがあります public class HomeController:Controller{ public ActionResult Index() { if (Request.IsAjaxRequest()) { //do some ajaxy stuff } return View("Index"); } } 私はモックに関するいくつかのヒントを得て、以下とRhinoMocksでコードをテストしたいと思っていました var mocks = new MockRepository(); var mockedhttpContext = mocks.DynamicMock<HttpContextBase>(); var mockedHttpRequest = mocks.DynamicMock<HttpRequestBase>(); SetupResult.For(mockedhttpContext.Request).Return(mockedHttpRequest); var controller = new HomeController(); controller.ControllerContext = new ControllerContext(mockedhttpContext, new RouteData(), controller); var result …

5
ASP.NET MVC:UrlHelperを使用するユニットテストコントローラー
私のコントローラーアクションの1つであるAjaxリクエストで呼び出されるアクションは、リダイレクトを実行できるようにクライアント側にURLを返します。私は使用Url.RouteUrl(..)していController.Urlますが、ユニットテスト中にパラメーターが事前入力されていないため、これは失敗します。 私は、スタブにしようと他の人の間で、多くのことを試してみましたUrlHelper手動で作成し、(失敗した)UrlHelperとRequestContextスタブ持っているHttpContextBase(上の失敗したRouteCollection.GetUrlWithApplicationPathコール)。 私はGoogleを検索しましたが、事実上何も見つかりませんでした。Url.RouteUrl私のコントローラーアクションで信じられないほど愚かなことをしていますか?もっと簡単な方法はありますか? さらに悪いことに、ユニットテストで返されたURLをテストできるようにしたいのですが、実際には、正しいルートにリダイレクトされていることだけを知りたいのですが、ルート、解決されるURLを制御したいと思います(例:stubbedを使用してRouteCollection)-しかし、最初にテストに合格させていただきます。

11
Entity Framework 6を​​使用した人々のユニットテストはどうですか?
私はユニットテストとTDD全般から始めたばかりです。以前は手を出していたのですが、ワークフローに追加して、より優れたソフトウェアを作成することにしました。 昨日そのようなことを含めた質問をしましたが、それ自体が質問のようです。コントローラーからビジネスロジックを抽象化し、EF6を使用して特定のモデルとデータインタラクションにマッピングするために使用するサービスクラスの実装を開始するために座った。 問題は、リポジトリでEFを抽象化したくなかったため(それでも特定のクエリなどのサービスの外で利用可能になるため)、自分のサービスをテストしたい(EFコンテキストが使用される)ために、すでに自分自身をロードブロッキングしています。 。 ここで私は問題だと思いますが、これを行う意味はありますか?もしそうなら、IQueryableによって引き起こされたリークの多い抽象化と、メモリ内で作業する際のLinqプロバイダーの違いのために、ユニットテストの主題に関するLadislav Mrnkaによる多くの優れた投稿が簡単ではないことを踏まえて、人々はどうやってそれを実際にやっていますか?特定のデータベースに並置された実装。 テストしたいコードは非常に単純なようです。(これは、私が何をしているかを理解するためのダミーコードです。TDDを使用して作成を推進したいと思います) 環境 public interface IContext { IDbSet<Product> Products { get; set; } IDbSet<Category> Categories { get; set; } int SaveChanges(); } public class DataContext : DbContext, IContext { public IDbSet<Product> Products { get; set; } public IDbSet<Category> Categories { get; set; } public DataContext(string …

11
voidメソッドの単体テスト?
何も返さないメソッドを単体テストする最良の方法は何ですか?具体的にはc#です。 私が実際にテストしようとしているのは、ログファイルを取得して特定の文字列について解析するメソッドです。次に、文字列がデータベースに挿入されます。これまでに行われていないことはありませんが、TDDが非常に新しいので、これをテストできるのか、それとも実際にはテストされないのかと思います。
170 c#  unit-testing 

5
Moqを使用した特定のパラメーターの確認
public void SubmitMessagesToQueue_OneMessage_SubmitSuccessfully() { var messageServiceClientMock = new Mock<IMessageServiceClient>(); var queueableMessage = CreateSingleQueueableMessage(); var message = queueableMessage[0]; var xml = QueueableMessageAsXml(queueableMessage); messageServiceClientMock.Setup(proxy => proxy.SubmitMessage(xml)).Verifiable(); //messageServiceClientMock.Setup(proxy => proxy.SubmitMessage(It.IsAny<XmlElement>())).Verifiable(); var serviceProxyFactoryStub = new Mock<IMessageServiceClientFactory>(); serviceProxyFactoryStub.Setup(proxyFactory => proxyFactory.CreateProxy()).Returns(essageServiceClientMock.Object); var loggerStub = new Mock<ILogger>(); var client = new MessageClient(serviceProxyFactoryStub.Object, loggerStub.Object); client.SubmitMessagesToQueue(new List<IMessageRequestDTO> {message}); //messageServiceClientMock.Verify(proxy …
169 c#  unit-testing  nunit  moq 

14
Python Djangoで単体テストを実行している間、ロギングを無効にするにはどうすればよいですか?
私はDjangoアプリケーションをテストするために、単純な単体テストベースのテストランナーを使用しています。 私のアプリケーション自体はsettings.pyで基本的なロガーを使用するように設定されています: logging.basicConfig(level=logging.DEBUG) そして私のアプリケーションコードでは次を使用します: logger = logging.getLogger(__name__) logger.setLevel(getattr(settings, 'LOG_LEVEL', logging.DEBUG)) ただし、単体テストを実行するときは、ログを無効にして、テスト結果の出力が乱れないようにしたいと思います。ログをグローバルにオフにする簡単な方法はありますか?テストを実行すると、アプリケーション固有のロガーがコンソールにデータを書き出さないようにしますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.