expectations 0.0.9 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README +18 -1
- data/lib/expectations/results.rb +8 -0
- data/lib/expectations/suite.rb +1 -1
- data/lib/expectations/suite_results.rb +29 -7
- data/lib/expectations.rb +2 -0
- data/rakefile.rb +1 -1
- metadata +2 -2
data/README
CHANGED
@@ -66,7 +66,24 @@ expectations can be used for state based and behavior based testing.
|
|
66
66
|
expect Object.to_receive(:deal) do
|
67
67
|
Object.deal
|
68
68
|
end
|
69
|
-
|
69
|
+
|
70
|
+
# State based test utilizing a stub
|
71
|
+
expect 2 do
|
72
|
+
stub(:two => 2).two
|
73
|
+
end
|
74
|
+
|
75
|
+
# State based test utilizing a concrete mock
|
76
|
+
expect 2 do
|
77
|
+
Object.expects(:bar).returns 2
|
78
|
+
Object.bar
|
79
|
+
end
|
80
|
+
|
81
|
+
# Behavior based test utilizing a stub and a concrete mock
|
82
|
+
expect 1 do
|
83
|
+
Object.expects(:give_me_three).with(3).returns 1
|
84
|
+
Object.give_me_three(stub(:three=>3).three)
|
85
|
+
end
|
86
|
+
|
70
87
|
end
|
71
88
|
|
72
89
|
== Contributors
|
data/lib/expectations/results.rb
CHANGED
@@ -7,6 +7,14 @@ module Expectations::Results
|
|
7
7
|
self.is_a?(Expectations::Results::Fulfilled)
|
8
8
|
end
|
9
9
|
|
10
|
+
def failure?
|
11
|
+
self.is_a?(Expectations::Results::StateBasedFailure) || self.is_a?(Expectations::Results::BehaviorFailure)
|
12
|
+
end
|
13
|
+
|
14
|
+
def error?
|
15
|
+
self.is_a?(Expectations::Results::StateBasedError) || self.is_a?(Expectations::Results::BehaviorBasedError)
|
16
|
+
end
|
17
|
+
|
10
18
|
def self.included(klass)
|
11
19
|
klass.extend ClassMethods
|
12
20
|
end
|
data/lib/expectations/suite.rb
CHANGED
@@ -10,7 +10,7 @@ class Expectations::Suite
|
|
10
10
|
ENV["LINE"].nil? ? run_all(suite_result) : run_one(suite_result)
|
11
11
|
end
|
12
12
|
suite_result.print_results(benchmark)
|
13
|
-
suite_result.
|
13
|
+
suite_result.write_junit_xml(ENV["JUnitXmlPath"]) unless ENV["JUnitXmlPath"].nil?
|
14
14
|
suite_result.result
|
15
15
|
end
|
16
16
|
|
@@ -14,19 +14,15 @@ class Expectations::SuiteResults
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def fulfilled
|
17
|
-
expectations.select { |expectation| expectation.
|
17
|
+
expectations.select { |expectation| expectation.fulfilled? }
|
18
18
|
end
|
19
19
|
|
20
20
|
def errors
|
21
|
-
expectations.select
|
22
|
-
expectation.is_a?(Expectations::Results::StateBasedError) || expectation.is_a?(Expectations::Results::BehaviorBasedError)
|
23
|
-
end
|
21
|
+
expectations.select { |expectation| expectation.error? }
|
24
22
|
end
|
25
23
|
|
26
24
|
def failures
|
27
|
-
expectations.select
|
28
|
-
expectation.is_a?(Expectations::Results::StateBasedFailure) || expectation.is_a?(Expectations::Results::BehaviorFailure)
|
29
|
-
end
|
25
|
+
expectations.select { |expectation| expectation.failure? }
|
30
26
|
end
|
31
27
|
|
32
28
|
def print_results(benchmark)
|
@@ -57,6 +53,32 @@ class Expectations::SuiteResults
|
|
57
53
|
end
|
58
54
|
end
|
59
55
|
|
56
|
+
def write_junit_xml(path)
|
57
|
+
FileUtils.rm_rf path if File.exist?(path)
|
58
|
+
FileUtils.mkdir_p path
|
59
|
+
grouped_expectations = expectations.inject({}) do |result, expectation|
|
60
|
+
result[expectation.file] = [] if result[expectation.file].nil?
|
61
|
+
result[expectation.file] << expectation
|
62
|
+
result
|
63
|
+
end
|
64
|
+
grouped_expectations.keys.each do |file_name|
|
65
|
+
class_name = "#{File.basename(file_name, ".rb")}.xml"
|
66
|
+
File.open("#{path}/TEST-#{class_name}", "w") do |file|
|
67
|
+
file << '<?xml version="1.0" encoding="UTF-8" ?>'
|
68
|
+
grouped_fulfilled = grouped_expectations[file_name].select { |expectation| expectation.fulfilled? }
|
69
|
+
grouped_errors = grouped_expectations[file_name].select { |expectation| expectation.error? }
|
70
|
+
grouped_failures = grouped_expectations[file_name].select { |expectation| expectation.failure? }
|
71
|
+
file << %[<testsuite errors="#{grouped_errors.size}" skipped="0" tests="#{grouped_expectations[file_name].size}" time="0.00" failures="#{grouped_failures.size}" name="#{class_name}">]
|
72
|
+
grouped_expectations[file_name].each do |expectation|
|
73
|
+
file << %[<testcase time="0.0" name="line:#{expectation.line}">]
|
74
|
+
file << %[<failure type="java.lang.AssertionError" message="#{ERB::Util.h(expectation.message)}"/>] if expectation.failure?
|
75
|
+
file << %[</testcase>]
|
76
|
+
end
|
77
|
+
file << %[</testsuite>]
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
60
82
|
def filter_backtrace(trace)
|
61
83
|
patterns_to_strip = [/\/expectations\/lib\/expectations\//, /\/lib\/ruby\/1\.8\//]
|
62
84
|
result = patterns_to_strip.inject(trace) do |result, element|
|
data/lib/expectations.rb
CHANGED
@@ -14,6 +14,8 @@ require 'mocha'
|
|
14
14
|
require 'mocha/standalone'
|
15
15
|
require 'singleton'
|
16
16
|
require 'benchmark'
|
17
|
+
require 'erb'
|
18
|
+
require 'fileutils'
|
17
19
|
require File.expand_path(File.dirname(__FILE__) + '/expectations/object')
|
18
20
|
require File.expand_path(File.dirname(__FILE__) + '/expectations/string')
|
19
21
|
require File.expand_path(File.dirname(__FILE__) + '/expectations/mocha')
|
data/rakefile.rb
CHANGED
@@ -41,7 +41,7 @@ specification = Gem::Specification.new do |s|
|
|
41
41
|
expect NoMethodError do
|
42
42
|
Object.invalid_method_call
|
43
43
|
end."
|
44
|
-
s.version = "0.0
|
44
|
+
s.version = "0.1.0"
|
45
45
|
s.author = 'Jay Fields'
|
46
46
|
s.description = "A lightweight unit testing framework. Tests (expectations) will be written as follows
|
47
47
|
expect 2 do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: expectations
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jay Fields
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-01-
|
12
|
+
date: 2008-01-09 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|