네트워크가 찾아낸 것
아래 각 줄은 의견이 아니라 측정입니다. 모두 공개된 샘플로 연결되며, 그 샘플의 contract는 네트워크를 끈 고정 컨테이너에서 실행되므로 직접 다시 돌려 보고 반박할 수 있습니다.
운영체제와 런타임은 연결된 샘플에 실제 기록된 환경을 기준으로 합니다. 해당 값이 없는 항목은 필터 선택 시 제외됩니다.
597개 발견, 8개 생태계.
- cargo
- composer
- gem
- golang
- hex
- npm
- pub
- pypi
샘플이 말하고, 계약이 측정한 것
발행된 샘플이 측정한 결과 중 426–450번째입니다(전체 568개).
-
npm샘플 컨트랙트node · linux/x64commander@15.0.0
믿는 것Spawning git-style executable subcommands with Commander cleans up all process-level event listeners once the subcommand process exits.
측정한 것Spawning executable subcommands in commander registers signal event listeners on the global process object that are never unregistered upon process termination, accumulating memory leaks on subsequent command invocations.
-
npm샘플 컨트랙트node · linux/x64commander@10.0.1
믿는 것Passing a string option name to Option.implies() sets that option to true when the triggering option is parsed.
측정한 것Option.implies('quiet') on an option implicitly sets the boolean quiet option to true when the parent flag is present in Commander 10.0.1 instead of decomposing the string into numeric character properties as in 10.0.0
-
npm샘플 컨트랙트node · linux/x64bun@1.2.17
믿는 것The bun npm package package.json maps the bunx binary entry to bin/bun.exe rather than a dedicated bin/bunx.exe target.
측정한 것assert bun package.json bin field maps bunx to bin/bunx.exe rather than bin/bun.exe in version 1.2.17
-
gem샘플 컨트랙트ruby · linux/x64rack-test@2.2.0
믿는 것Passing an HTTP header dictionary as the third argument to Rack::Test request methods translates header names into Rack environment keys for that single request.
측정한 것assert passing raw HTTP header names in the third argument leaves them un-prefixed in env rather than transforming to HTTP_ CGI keys
-
gem샘플 컨트랙트ruby · linux/x64rack-protection@4.2.1
믿는 것Rack::Protection::CookieTossing evaluates each request independently so that a subsequent valid request with no duplicate cookies succeeds after an earlier attack request was rejected.
측정한 것Calling Rack::Protection::CookieTossing with a subsequent valid request returns HTTP status 403 Forbidden rather than 200 OK because detected malicious cookie names are retained on the middleware instance in @bad_cookies across requests.
-
gem샘플 컨트랙트ruby · linux/x64rack-protection@4.2.1
믿는 것Parameter values with non-string leaf types should survive a round trip through `EscapedParams` unchanged.
측정한 것When a pre-seeded `rack.request.query_hash` with mixed values passes through `Rack::Protection::EscapedParams`, integer and symbol leaves become `nil` before the request body reaches the app, while string leaves are HTML-escaped.
-
composer샘플 컨트랙트php · linux/x64symfony/console@8.1.1
믿는 것A developer expects the default ChoiceQuestion label to be escaped, so `<comment>...` appears in the prompt brackets.
측정한 것In 8.1.1, running a ChoiceQuestion with default `<comment>Add new tag</comment>` must print the prompt with `Select a tag [Add new tag]:` and must not print `[<comment>Add new tag</comment>]`.
-
gem샘플 컨트랙트ruby · linux/x64json@2.9.1
믿는 것JSON.parse with symbolize_names: true and create_additions: true deserializes custom domain objects while symbolizing remaining hash keys, and JSON.generate serializes objects that implement as_json.
측정한 것assert JSON.parse raises ArgumentError when :symbolize_names and :create_additions are combined, making addition deserialization mutually exclusive with key symbolization
-
gem샘플 컨트랙트ruby · linux/x64json@2.9.1
믿는 것Passing nil to JSON.parse should raise JSON::ParserError because it is invalid JSON text.
측정한 것JSON.load(nil) returns nil, so the two APIs are not behaviorally equivalent on nil input.
-
gem샘플 컨트랙트ruby · linux/x64faraday-net_http@3.4.4
믿는 것All Ruby Net::HTTP timeout exceptions inherit from Timeout::Error and are expected to be caught under Faraday::TimeoutError.
측정한 것Net::OpenTimeout is mapped to Faraday::ConnectionFailed rather than Faraday::TimeoutError because faraday-net_http routes socket open failures through its connection failure handler.
-
npm샘플 컨트랙트node · linux/x64@babel/preset-env@7.29.7
믿는 것Modifying .browserslistrc on disk causes @babel/preset-env to automatically pick up the updated target environment on subsequent transformSync calls in a long-running process.
측정한 것When .browserslistrc is modified on disk during a process lifetime, @babel/preset-env continues to emit transpiled code matching the stale cached targets until browserslist.clearCaches() is explicitly invoked.
-
npm샘플 컨트랙트node · linux/x64@babel/preset-env@8.0.2
믿는 것Setting targets to an empty array [] behaves identically to an empty object {} by defaulting to the standard baseline and leaving modern syntax untranspiled.
측정한 것Passing targets: [] resolves to an empty environment matching zero engines and forces full ES5 transpilation of modern arrow functions and const declarations, whereas targets: {} defaults to the modern baseline.
-
gem샘플 컨트랙트ruby · linux/x64faraday-net_http@3.4.4
믿는 것all Net::HTTP timeout conditions including connection open timeouts raise Faraday::TimeoutError
측정한 것assert Net::OpenTimeout raises Faraday::ConnectionFailed rather than Faraday::TimeoutError
-
gem샘플 컨트랙트ruby · linux/x64faraday@2.14.3
믿는 것Passing a nil parameter value in a Faraday query hash omits the key from the serialized URL or encodes it with an empty string equals sign, while parsing a valueless query flag always returns nil across all encoders.
측정한 것Faraday::NestedParamsEncoder and Faraday::FlatParamsEncoder serialize a nil value as a valueless query key without an equals sign rather than omitting it or appending an equals sign, while FlatParamsEncoder decodes valueless query keys as the boolean true rather than nil.
-
npm샘플 컨트랙트node · linux/x64@babel/preset-env@8.0.2
믿는 것Transpiling object rest destructuring and object spread with @babel/preset-env preserves accessor descriptors like getters and copies inherited prototype properties onto the resulting object.
측정한 것Transpiling object rest destructuring and object spread with @babel/preset-env evaluates getters into plain data properties, drops inherited prototype properties and non-enumerable properties, but preserves own enumerable Symbol keys.
-
gem샘플 컨트랙트ruby · linux/x64zeitwerk@2.8.3
믿는 것Zeitwerk autovivifies a namespace module for every subdirectory in a managed root directory, treating empty folders and non-Ruby asset directories as constant namespaces.
측정한 것assert empty directories and directories containing only non-Ruby assets or hidden dotfiles do not autovivify namespace modules and raise NameError on constant access rather than resolving to Module instances
-
gem샘플 컨트랙트ruby · linux/x64faraday@2.14.3
믿는 것Faraday::NestedParamsEncoder.decode raises Faraday::ParsingError when query parameters conflict, and client timeouts inherit from Faraday::ClientError rather than Faraday::ServerError.
측정한 것Faraday::NestedParamsEncoder.decode raises Ruby core TypeError instead of Faraday::ParsingError when a scalar parameter precedes a nested key, but silently overwrites and returns the scalar when the nested key comes first.
-
gem샘플 컨트랙트ruby · linux/x64zeitwerk@2.8.3
믿는 것Defining a non-module object in an explicit namespace file raises Ruby's standard TypeError on nested constant access or Zeitwerk::NameError during autoloading.
측정한 것assert assigning a non-module object in an explicit namespace file immediately raises Zeitwerk::Error from const_added during autoload, escaping rescue NameError and rescue TypeError
-
npm샘플 컨트랙트node · linux/x64@babel/core@8.0.1
믿는 것Dynamic import expressions are parsed as CallExpression AST nodes with an Import callee property.
측정한 것parseSync parses dynamic import('./mod') as an ImportExpression node with a source property rather than a CallExpression with callee Import
-
gem샘플 컨트랙트ruby · linux/x64sorbet-runtime@0.6.13426
믿는 것A `checked(:never)` method in a class with duplicate `method_added` hooks still incurs wrapper allocations on every call.
측정한 것A method annotated with `sig { returns(Integer).checked(:never) }` after a duplicated `method_added` chain runs with 1 allocation on first call and 0 on second call.
-
gem샘플 컨트랙트ruby · linux/x64sorbet-runtime@0.6.13427
믿는 것A sig block failing on first invocation can be retried once its dependencies resolve, sig binds to the next lexically defined method across threads, and re-entering a method during sig evaluation executes the underlying method body.
측정한 것Retrying a method whose lazy sig block previously raised an exception fails with RuntimeError: 'A previous invocation... raised, and the current one succeeded' rather than recovering when the sig block now succeeds.
-
gem샘플 컨트랙트ruby · linux/x64sorbet-runtime@0.6.13427
믿는 것Initializing a T::Struct with an undeclared attribute is silently ignored at runtime
측정한 것Initializing a T::Struct with an unknown attribute raises ArgumentError
-
gem샘플 컨트랙트ruby · linux/x64sorbet-runtime@0.6.13427
믿는 것T::Struct.from_hash rejects unknown payload keys by default with an error, matching T::Struct.new constructor validation.
측정한 것assert from_hash! and from_hash with strict: true raise RuntimeError when unknown keys are provided
-
gem샘플 컨트랙트ruby · linux/x64sorbet-runtime@0.6.13427
믿는 것A method signed with T::Array[Integer] raises TypeError at the call site when the caller passes an array whose elements are not Integers, because the annotation explicitly names the element type.
측정한 것Calling a sig-annotated method with T::Array[Integer] and an array of strings does not raise TypeError; the runtime erases the Integer type parameter and accepts any Array without inspecting its elements.
-
gem샘플 컨트랙트ruby · linux/x64sorbet-runtime@0.6.13427
믿는 것Setting T::Configuration.default_checked_level = :never anywhere before application code runs disables runtime type checking globally, even if class definitions have already been loaded.
측정한 것Calling T::Configuration.default_checked_level= after any sig-annotated method has been invoked raises RuntimeError with 'Set the default checked level earlier', because sorbet-runtime evaluates sig blocks lazily on first call — meaning class loading alone does not trigger evaluation, but one call does.
여기 있는 줄을 확인하는 방법
샘플을 열고 contract를 읽고 실행하십시오. contract는 그 샘플 자신의 테스트입니다. 네트워크를 끈 고정 컨테이너에서 실행되고, 그 실행의 서명된 영수증이 네트워크에 저장됩니다. 여기 있는 어떤 것도 라이브러리에 대한 우리의 해석에 기대지 않습니다. 라이브러리가 실제로 한 일에만 기댑니다.
게시된 샘플 중 일부는 이 페이지에 없습니다. 계약은 통과했고 샘플도 살아 있지만, 그 계약에 문장으로 읽힐 줄이 없기 때문입니다. expect(x).toBe(1) 같은 단언은 그것이 검사하는 믿음 옆에 놓아도 독자에게 아무것도 말해주지 않습니다. 읽을 수 없는 근거를 싣기보다는 뺀다는 쪽을 택했습니다.