mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-31 10:12:26 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			66 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Package suite contains logic for creating testing suite structs
 | |
| // and running the methods on those structs as tests.  The most useful
 | |
| // piece of this package is that you can create setup/teardown methods
 | |
| // on your testing suites, which will run before/after the whole suite
 | |
| // or individual tests (depending on which interface(s) you
 | |
| // implement).
 | |
| //
 | |
| // A testing suite is usually built by first extending the built-in
 | |
| // suite functionality from suite.Suite in testify.  Alternatively,
 | |
| // you could reproduce that logic on your own if you wanted (you
 | |
| // just need to implement the TestingSuite interface from
 | |
| // suite/interfaces.go).
 | |
| //
 | |
| // After that, you can implement any of the interfaces in
 | |
| // suite/interfaces.go to add setup/teardown functionality to your
 | |
| // suite, and add any methods that start with "Test" to add tests.
 | |
| // Methods that do not match any suite interfaces and do not begin
 | |
| // with "Test" will not be run by testify, and can safely be used as
 | |
| // helper methods.
 | |
| //
 | |
| // Once you've built your testing suite, you need to run the suite
 | |
| // (using suite.Run from testify) inside any function that matches the
 | |
| // identity that "go test" is already looking for (i.e.
 | |
| // func(*testing.T)).
 | |
| //
 | |
| // Regular expression to select test suites specified command-line
 | |
| // argument "-run". Regular expression to select the methods
 | |
| // of test suites specified command-line argument "-m".
 | |
| // Suite object has assertion methods.
 | |
| //
 | |
| // A crude example:
 | |
| //
 | |
| //	// Basic imports
 | |
| //	import (
 | |
| //	    "testing"
 | |
| //	    "github.com/stretchr/testify/assert"
 | |
| //	    "github.com/stretchr/testify/suite"
 | |
| //	)
 | |
| //
 | |
| //	// Define the suite, and absorb the built-in basic suite
 | |
| //	// functionality from testify - including a T() method which
 | |
| //	// returns the current testing context
 | |
| //	type ExampleTestSuite struct {
 | |
| //	    suite.Suite
 | |
| //	    VariableThatShouldStartAtFive int
 | |
| //	}
 | |
| //
 | |
| //	// Make sure that VariableThatShouldStartAtFive is set to five
 | |
| //	// before each test
 | |
| //	func (suite *ExampleTestSuite) SetupTest() {
 | |
| //	    suite.VariableThatShouldStartAtFive = 5
 | |
| //	}
 | |
| //
 | |
| //	// All methods that begin with "Test" are run as tests within a
 | |
| //	// suite.
 | |
| //	func (suite *ExampleTestSuite) TestExample() {
 | |
| //	    assert.Equal(suite.T(), 5, suite.VariableThatShouldStartAtFive)
 | |
| //	    suite.Equal(5, suite.VariableThatShouldStartAtFive)
 | |
| //	}
 | |
| //
 | |
| //	// In order for 'go test' to run this suite, we need to create
 | |
| //	// a normal test function and pass our suite to suite.Run
 | |
| //	func TestExampleTestSuite(t *testing.T) {
 | |
| //	    suite.Run(t, new(ExampleTestSuite))
 | |
| //	}
 | |
| package suite
 |