我正在尝试将路由参数作为字符串嵌入到资源中。
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.junit.jupiter.MockitoExtension;
@ExtendWith(MockitoExtension.class)
public class FooTest {
@Mock
Bar mockBar;
Foo foo;
@BeforeEach
public void beforEach() {
foo = new Foo(mockBar);
}
@Test
public void doThis() {
Mockito.when(mockBar.doThat())
.thenReturn(Mockito.anyInt());
// ...
}
}
我能想到的一种方法是将资源分成route_param块并使其成为字符串,但这会引入很多嵌套,这将破坏资源具有嵌入route_param的目的,从而阻止嵌套。
class Example < Grape::API
resource 'a/:param/b' do
# code
end
end
我可以想到的另一种方法是通过在param块中显式定义,这可能会重复很多代码。
class Example < Grape::API
resource 'a' do
route_param :param, type: String do
resource 'b' do
# code
end
end
end
end
有人知道其他方式吗?谢谢!