会合を満たす!DENU用テストデータビルダモジュール


TLドクター


Denoと一緒に働いている間、あなたのテストのためのランダムなデータを考え出すことでより多くを悩ますことを望んだことがありますか?
もしそうなら、dixtureはあなたのためのモジュールです!

ロドルフィコスト / ディクス


dixtureはあなたのテストのためのランダムなデータを作成することができますdenoモジュールです。


ディクス


ディクテーションは、ゼロの外部依存関係を使用してテストのためのランダムなデータを作成するのに役立ちます!

🚥 現状


マスターステータス
プロジェクトの現状
最新の安定版:v 0.2.2

🏆 謝辞


Dixtureはゆるく.NET環境に存在する大きなライブラリに基づいています.
私は私のユニットと統合テストのために長い間、このライブラリを使用して、どうにか、どうにか、私のDenoのテストに取り組むとき、その機能のいくらかを得ました.
こうしてこのプロジェクトに取り組んだ.

⚡ 始める


単にdeno.land/x/によって我々を輸入して、テストデータ生成のあなたの大好きな味を使ってください!
v 0である.2.2あなたは2つの「味」から選ぶことができます
  • あなたのクラスとインスタンス
  • のフィールドを作成および/または割り当てます
  • あなたのクラス
  • の規則を書き留めることができるファクトリAPI
    import {
      dixtureFns,
      RuleSet,
      DixtureFactory,
      InterfaceRuleSet,
    } from "https://deno.land/x/[email protected]/mod.ts";
    class Person {

    Cover is a Deno Artwork made by Heymi

    背景と動機

    Some background on myself: My fulltime job, right now, is as a fullstack engineer for c#. That means that I get to enjoy all of its perks and all the awesome NuGet packages that the .NET community created.

    Some of these packages are soo helpful that they're must-haves for my daily workflow. These NuGets help me be productive while writing my tests and, to be honest, actually make me enjoy writing tests! To name a few:

    • AutoFixture and either AutoFixture.nUnit or AutoFixture.xUnit
    • FluentAssertions
    • Moq

    So when I'm working with Deno on my free time I must admit... I miss those libraries 😅.

    ウェリオHorld、これはdixtureです

    So, out of my frustration due to a lack of Test Data Generators for Deno I began to work on something, now called Dixture. I had to, somehow, make my workflow faster and since no one was writing one... might as well give it a shot, right?

    Dixture is, basically, a module that simplifies your Test Data Generation. It has zero external dependencies and allows you some room for customization.

    My goal is to keep Dixture as less intrusive as possible. I don't think it's fair to ask anyone to clutter their code with ClassAttributes or bother with metadata generation just for some data generation. However, given the not-on-par-with-csharp support for Reflection on Typescript, we still need some input from you, the developer, in order to give us a "blueprint" (called RuleSet inside Dixture) of how to build your class.

    十分な話、コードを見せてください

    You can check out all our samples at the GitHub repository, they're available as standalone files and on our test cases but here's a small sample on our latest Factory API:

    import {
      dixtureFns,
      RuleSet,
      DixtureFactory,
    } from "https://deno.land/x/[email protected]/mod.ts";
    
    class Person {
      name: string = "";
      age: number = 0;
      bankBalance: bigint = 1n;
      isAlive: boolean = true;
    }
    
    // 1. Creating our factory
    const factory = new DixtureFactory(
      // 2. Writing in-line Rule Sets (blueprints) for our classes
      new RuleSet(
        Person, // 3. For each field we pick a resolution function
        {
          field: "name",
          resolve: dixtureFns.String,
        },
        {
          field: "age",
          resolve: dixtureFns.Int,
        }, // 4. We can even define our own resolution functions, as far as they return the expected type
        {
          field: "bankBalance",
          resolve: () => {
            if (dixtureFns.Bool()) {
              return 10000000n;
            }
            return 0n;
          },
        }, // 5. We can also omit rules, the field might not be important after all
      ),
    );
    

    自動固定 X / Y / Z機能についてはどうですか?


    さて、現在ロードマップは、interfacesのために世代を許可して、それを許容することです😅), Fluent/BuilderRuleSets / Blueprints APIを許可し、さらにどのようにデータが生成されるかを強化します.
    しかし、すべての提案を歓迎しています!私たちのgithubレポによってドロップし、問題を作成し、私たちをforkし、プル要求を送信する自由に感じなさい!

    謝辞


    テストに私を得るために の背後にある偉大なコミュニティへの功績と、Denoのための改善されたテスト“フレームワーク”を作成するためのAutoFixture
    これを読んでのおかげで、安全な滞在!