Research
Security News
Malicious npm Package Targets Solana Developers and Hijacks Funds
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
= Synthesis
== A tool for verifying mock object assumptions in tests
== Installation
sudo gem i synthesis
== Download
Synthesis RubyForge page ( http://rubyforge.org/projects/synthesis )
== Dependencies
Synthesis's core doesn't have any dependencies.
When used with the Mocha adapter, it will depend on the Mocha[http://mocha.rubyforge.org] library.
When used with the RSpec adapter, it will depend on the RSpec[http://rspec.info/] library.
== Usage
Synthesis can be used through its Rake task. It has two adapters: Mocha (with Test::Unit, etc) and RSpec. If +adapter+ is not specified, the Mocha adapter will be used by default.
By default, Synthesis outputs to +STDOUT+, but output can be redirected to alternative IO streams.
Synthesis can be setup to ignore certain classes or modules when collecting expectations for verification.
If +pattern+ is not specified, it will default to test/**/*_test.rb
As of version 0.2.0, Synthesis has a +DOT+ formatter which, when used, will output text in the DOT graph description language, producing system visualizations as specified by the simulated interactions in the system's tests. The output of the +DOT+ formatter can be used with tools like Graphviz( http://www.graphviz.org/ ). The +DOT+ formatter depends on the +parse_tree+ and +sexp_processor+ libraries.
== Usage examples
To use with Test::Unit and Mocha, ignoring Array and Hash:
require "synthesis/task"
Synthesis::Task.new do |t| t.pattern = 'test/unit/**/*_test.rb' t.ignored = [Array, Hash] end
To use with RSpec, running all specs in the spec directory:
require "synthesis/task"
Synthesis::Task.new do |t| t.adapter = :rspec t.pattern = 'spec/**/*_spec.rb' end
To to a file:
require "synthesis/task"
Synthesis::Task.new do |t| t.out = File.new "synthesis.test.txt", "a" end
To output a DOT graph, first make sure you have sexp_processor installed:
sudo gem install sexp_processor
Then, to output a file called "synthesis.dot", do (if formatter_out is not specified, the default ouput is STDOUT):
require "synthesis/task"
Synthesis::Task.new do |t| t.formatter = :dot t.formatter_out = "synthesis.dot" end
To use Synthesis with Rails:
require "synthesis/task"
Synthesis::Task.new do |t| RAILS_ENV = "test" Rake::Task['environment'].invoke # This loads the Rails environment, which may make your build slower. Use only if needed t.pattern = 'test/**/*_test.rb' end
== Utilities
=== mock_instance
require "synthesis/util/mock_instance" foo_mock = Foo.mock_instance(arg_one, arg_2)
This is equivalent, but without calling the real initialize method, to:
foo_mock = Foo.new Foo.expects(:new).with(arg_one, arg_two).returns(foo_mock)
Or, in the case of RSpec, it is equivalent to:
foo_mock = Foo.new Foo.should_receive(:new).with(arg_one, arg_two).and_return(foo_mock)
Either "mocha_standalone" or "spec/mocks" need to be required before using mock_instance.
== Git
Public clone URL: git://github.com/gmalamid/synthesis.git
== Contributors
Danilo Sato, Paul Nasrat, Jerome Riga
== Discuss
http://groups.google.com/group/synthesized-testing
== Related reading
http://nutrun.com/weblog/using-synthesis-with-testunit-and-mocha
FAQs
Unknown package
We found that synthesis demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.