我已经使用 go modules 安装了一个包(go get in Go 1.13),现在我想删除它。在文档中没有任何关于此的内容,并且在go get docu 中也没有。
手动从 go.mod 中删除包并不能解决问题,因此它保留在 go.sum 中。
我应该如何以干净的方式移除包裹?
在Grails的控制器单元测试(更具体地说是Spock ControllerSpec)上,我想在协作者抛出异常时检查测试方法的行为.
我正在使用mockFor实用程序(来自Spock的UnitSpec或Grails的GrailsUnitTestMixin)来指定我在测试中对这种异常抛出方法的要求,如下所示:
@TestFor(TestController)
class TestControllerSpec extends Specification {
def "throwing and exception from a mock method should make the test fail"() {
setup:
def serviceMock = mockFor(TestService)
serviceMock.demand.exceptionThrowingMethod() { throw new Exception() }
controller.testService = serviceMock.createMock()
when:
controller.triggerException()
then:
thrown(Exception)
}
}
Run Code Online (Sandbox Code Playgroud)
所以,在triggerException我调用内部exceptionThrowingMethod,像这样:
class TestController {
def testService
def triggerException() {
testService.exceptionThrowingMethod()
}
}
Run Code Online (Sandbox Code Playgroud)
但是测试失败了:
预期的异常java.lang.Exception,但没有抛出异常
我调试了执行并且异常不是beign抛出,exceptionThrowingMethod令人惊讶的是,invosure 返回了一个Closure.Nevermind将throws声明添加到方法的签名中也是行不通的.
我认为这与Spock有关,但是我尝试使用grails的测试mixins进行了一次simliar测试并得到了相同的结果.这是我的尝试:
@TestFor(TestController)
class TestControllerTests {
void testException() {
def serviceMock = mockFor(TestService) …Run Code Online (Sandbox Code Playgroud) 我有一个AngularJS服务,在"初始化"时(即在工厂函数中)从localStorage加载数据,如下所示:
module.service('myService', function ($localStorage) {
var data = $localStorage.data;
if (!isValid(data)) // isValid omitted on purpose, not relevant.
data = undefined;
return {
getData: function() {
return data;
}
setData: function(value) {
if (isValid(value))
data = value;
}
};
}
Run Code Online (Sandbox Code Playgroud)
在我的测试中,我想检查data是否实际从localStorage加载,如果值存在并且有效; 这不是关于测试isValid,而是使用它和$ localStorage的服务初始化.
我希望能够在我的测试中调用myService工厂.我在beforeEach钩子中获得了它的初始化实例,因为我还需要测试myService的方法.我想我需要为我的特定初始化测试创建一个不同的实例,但由于服务是AngularJS中的单例,我不确定是否可以这样做.
describe('myService', function() {
myService = $localStorage = null;
beforeEach(module('app'));
beforeEach(inject(function($injector) {
myService = $injector.get('myService');
$localStorage = $injector.get('$localStorage');
});
it('should look for stuff in localStorage on creation', function () {
$localStorage.data = 'my …Run Code Online (Sandbox Code Playgroud) unit-testing ×2
angularjs ×1
go ×1
go-modules ×1
grails ×1
javascript ×1
mocking ×1
testing ×1
vgo ×1