タグ付けされた質問 「xunit」

2
ビジネスロジックが変更されたときに失敗した場合、単体テストは脆弱と見なされますか?
以下のコードをご覧ください。女性の性別を持つ人がoffer1に適格であるかどうかをテストします。 [Fact] public void ReturnsFalseWhenGivenAPersonWithAGenderOfFemale() { var personId = Guid.NewGuid(); var gender = "F"; var person = new Person(personId, gender); var id = Guid.NewGuid(); var offer1 = new Offer1(id,"Offer1"); Assert.False(offer1.IsEligible(person)); } この単体テストは成功します。ただし、今後「Offer1」が女性に提供されると、失敗します。 言うことは受け入れられますか?オファー1を取り巻くビジネスロジックが変更された場合、ユニットテストは変更されなければなりません。データベースによっては、ビジネスロジックが次のように変更される場合があります(一部のオファーでは)。 update Offers set Gender='M' where offer=1; そして、このようなドメインモデルの場合には: if (Gender=Gender.Male) { //do something } また、背後のドメインロジックが定期的に変更を提供する場合と、そうでない場合もあることに注意してください。

4
.NETの最適な単体テストフレームワークとは何ですか?[閉まっている]
誰もが他のオプションを考慮せずにNUnitを使用しているように思えます。私はこれが理由だと思う: 誰もがすでにそれをよく知っているので、新しいAPIを学ぶ必要はありません。 NUnitで動作するように、継続的インテグレーションサーバーで既にセットアップされています。 私はこれについて間違っていますか? 最近、自分のプロジェクトの1つでxUnitを使用することにしました。それは私にとって非常に理にかなっており、概念的にはNUnitからの明確な一歩のように思えます。 どのフレームワークが実際に最良であるかについて意見を聞きたいと思います-それを学習したり、自動テストを再構成したりすることを考慮しません。

6
なぜxUnitフレームワークではテストを並行して実行できないのですか?
今日のマシンで複数のコアを利用するために、テストを並行して実行できるxUnitフレームワークを知っていますか? それらのどれもそれを行わない場合(または非常に少ない場合)、おそらく理由があります...テストは通常​​非常に速いので、人々は単にそれらを並列化する必要性を感じませんか? (少なくとも一部の)テストを複数のスレッドに分散できないほど深いものはありますか?

1
OSSプロジェクトの統合テスト-認証でサードパーティを処理する方法?
私の(オープンソースの)趣味プロジェクトの1つは、GitHub、Bitbucketなどからリポジトリのオフラインバックアップを作成するバックアップツールです。 ホスティング事業者のAPIを呼び出してリポジトリのリストを取得し、Git / Mercurial /何でもクローン/リポジトリをローカルコンピュータにプルします。 したがって、認証を使用してGitHub APIを呼び出す統合テストがあります。 (そして、クローン/プル機能が終了すると、おそらくGitHubからリポジトリをクローンするテストがあり、認証も必要になります) 特にこれらの統合テストで使用するユーザーと組織を作成しました。 問題:オープンソースであり、コードがGitHubで公開されているため、ソースコードのどこかにパスワードをハードコードすることはできません。 私が今やっていること テストでは、環境変数からすべてのユーザー名、パスワード、リポジトリ名を取得しています。 次に例を示します。 config.Name = TestHelper.EnvVar("GithubApiTests_Name"); config.Password = TestHelper.EnvVar("GithubApiTests_PW"); (TestHelper.EnvVar環境変数の値を取得し、存在しない場合は例外をスローするヘルパーメソッドです) 次に、これらの環境変数を設定するバッチファイルがあります。 実際のenvironment-variables.batスクリプト()は、ビルドスクリプトでテストを実行する前に呼び出されますが、ソース管理では無視されるため、実際にはリポジトリにありません。 何でソースコントロールであるでenvironment-variables.bat.sampleはなく、偽のパスワードで、同じ環境変数を設定し、: rem copy/rename this file to environment-variables.bat echo Setting environment variables for integration tests... set GithubApiTests_Name=scm-backup-testuser set GithubApiTests_OrgName=scm-backup-testorg set GithubApiTests_PW=not-the-real-password set GithubApiTests_Repo=scm-backup リポジトリを自分のマシンに複製し、このファイルの名前をに変更しenvironment-variables.bat、偽のパスワードを実際のパスワードに置き換えると、すべての統合テストが機能します。 これは継続的インテグレーションでも機能します。私はAppVeyorを使用しており、Web UIでこれらの環境変数を設定できます。 それについて私が嫌いなこと 私はそれがOSSプロジェクトにとって、特にこのプロジェクトにとっては良い解決策ではないと思います: 理論的には、私のプロジェクトの貢献者は、次の方法で統合テストをすぐに実行できます。 …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.