9

Jasmineは、JavaScriptの優れた単体テストフレームワークです。コードをテストするだけでなく、次の方法でコードを文書化するための優れた方法を提供します。

  • 流暢なBDD風の方法を使用して、それ自体がほとんどドキュメントのように読めるテストを定義する
  • テストレポートもドキュメントのように読めます

C#やJavaに匹敵するものが存在するかどうか疑問に思っています。

4

7 に答える 7

7

GitHub で NJasmine に出会いました。私はそれを使用したことはありませんが、C# 単体テストで Jasamine の素晴らしさを求める私のような他の人に役立つかもしれないと考えました。

GitHub から:

NJasmine は、 C# / .Net プログラミング用の JavaScript テスト ライブラリ Jasmine ( https://github.com/fschwiet/DreamNJasmine ) に触発された RSpec っぽいテスト言語です。

given("some preconditions", () => {

    var range = 10;

    when("the system under test is ran", () => {

        var sut = new SystemUnderTest();

        bool score = arrange(() => sut.Fire(range));

        then("win!", () => {

            expect(() => score);
        });
    });
});

Nuget で入手可能: http://nuget.org/List/Packages/NJasmine

繰り返しますが、私はそれを使用していないため、これを保証することはできませんが、これが他の人が情報に基づいた決定を下すのに役立つことを願っています.

HTH

于 2013-12-31T18:29:22.463 に答える
4

Oleasterは、Java 8 アロー関数を広範囲に使用した、クリーンでシンプルな構文を持つ Java テスト フレームワークです。JUnit ランナーを使用して実行されます。

ホームページのコードサンプル:

@RunWith(OleasterRunner.class)
public class OleasterIntroductionTest {{
    describe("A suite", () -> {
        it("contains a spec with an expectation", () -> {
            expect(40 + 2).toEqual(42);
        });
    });
}}
于 2015-03-11T21:52:35.503 に答える
3

JUnit 5は、@DisplayName、@Nested などを使用して BDD に似たものになります。ドキュメントをご覧ください。

GA リリースはまだありませんが、間もなくリリースされる予定です (2016 年後半に発表)。

于 2016-11-10T13:35:06.240 に答える
2

BDD の実装については、 Cucumber-JVMを参照してください。Java ベースですが、JVM ベースの言語 (Scala、Groovy) でも動作します。

Jenkins などの継続的インテグレーション システムを使用している場合は、Cucumber Reportsというレポート プラグインが利用可能です。

于 2012-10-16T16:54:53.777 に答える
2

Java (および Groovy) をテストするための非常に人気のあるフレームワークはSpockで、そのテストは書かれた仕様のようにも読めます。

于 2012-10-16T16:51:31.507 に答える
1

Javaに相当するものはJBehaveです

于 2012-10-16T16:43:26.757 に答える
0

Ginkgo4jは、Ruby の RSpec BDD のポートです。

@RunWith(Ginkgo4jRunner.class)
public class MyTests {

  private SystemUnderTest systemUnderTest;

  private int range;

  private bool score;

  {
    Describe("SystemUnderTest", () -> {
      BeforeEach(() -> {
        systemUnderTest = new SystemUnderTest();
      });
      Context("#Fire", () -> {
        JustBeforeEach(() -> {
          score = systemUnderTest.Fire(range));
        });
        Context("given a range", () -> {
          BeforeEach(() -> {
            range = 10;
          });
          It("should return a winning score!", () => {
            assertThat(score, is(true));
          });
      });
    });
  }
}
于 2018-06-06T04:57:05.877 に答える