会合を満たす!DENU用テストデータビルダモジュール
TLドクター
Denoと一緒に働いている間、あなたのテストのためのランダムなデータを考え出すことでより多くを悩ますことを望んだことがありますか?
もしそうなら、dixtureはあなたのためのモジュールです!
ロドルフィコスト / ディクス
dixtureはあなたのテストのためのランダムなデータを作成することができますdenoモジュールです。
ディクス
ディクテーションは、ゼロの外部依存関係を使用してテストのためのランダムなデータを作成するのに役立ちます!
🚥 現状
マスターステータス
プロジェクトの現状
最新の安定版:v 0.2.2
🏆 謝辞
Dixtureはゆるく.NET
環境に存在する大きなライブラリに基づいています.
私は私のユニットと統合テストのために長い間、このライブラリを使用して、どうにか、どうにか、私のDeno
のテストに取り組むとき、その機能のいくらかを得ました.
こうしてこのプロジェクトに取り組んだ.
⚡ 始める
単にdeno.land/x/
によって我々を輸入して、テストデータ生成のあなたの大好きな味を使ってください!
v 0である.2.2あなたは2つの「味」から選ぶことができます
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 eitherAutoFixture.nUnit
orAutoFixture.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/Builder
のRuleSets / Blueprints
APIを許可し、さらにどのようにデータが生成されるかを強化します.しかし、すべての提案を歓迎しています!私たちのgithubレポによってドロップし、問題を作成し、私たちをforkし、プル要求を送信する自由に感じなさい!
謝辞
テストに私を得るために の背後にある偉大なコミュニティへの功績と、Denoのための改善されたテスト“フレームワーク”を作成するためのAutoFixture
これを読んでのおかげで、安全な滞在!
Reference
この問題について(会合を満たす!DENU用テストデータビルダモジュール), 我々は、より多くの情報をここで見つけました https://dev.to/ardc_overflow/meet-dixture-a-test-data-builder-module-for-deno-n94テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol