Разобрался.
Я настраивал информационное окно в getInfoContents
вместо getInfoWindow
.
getInfoContents
даст вам белый ящик по умолчанию. Если вы хотите пользовательский, как я, вам нужно будет сделать все в getInfoWindow
примерно так:
mMap.setInfoWindowAdapter(object : GoogleMap.InfoWindowAdapter {
override fun getInfoWindow(marker: Marker?): View {
val row: View = layoutInflater.inflate(R.layout.custom_info_window, null)
val tvAddress: TextView = row.findViewById(R.id.textView_iw_address)
val tvTime: TextView = row.findViewById(R.id.textView_iw_time)
tvAddress.text = marker?.title
tvTime.text = marker?.snippet
return row }
override fun getInfoContents(marker: Marker?): View? {
//put in here, if you just want the default info window
return null
}
})
Вот фиксация, которая добавляет опцию к rspec - Это было 25 мая 2008. С этим можно сделать
A.any_instance.stub(do_something: 23)
Однако, последняя версия драгоценного камня rspec (1.1.11, октябрь 2008) не имеет этого патча в ней.
Этот билет указывает, что они дергали его по причинам обслуживания, и альтернативное решение еще не было предоставлено.
не похож на Вас, может сделать это в этой точке. Необходимо будет взломать класс вручную с помощью alias_method или somesuch.
или с RR:
stub.any_instance_of(A).do_something { 23 }
Я не знаю, как сделать это в ложной платформе спецификации, но можно легко выгрузить ее, чтобы мокко сделало следующее:
# should probably be in spec/spec_helper.rb
Spec::Runner.configure do |config|
config.mock_with :mocha
end
describe A, " when initialized" do
it "should set x to 42" do
A.new.x.should == 42
end
end
describe A, " when do_something is mocked" do
it "should set x to 23" do
A.any_instance.expects(:do_something).returns(23)
A.new.x.should == 23
end
end
В моей версии rspec (1.2.2) я могу сделать следующее:
A.should_receive(:new).and_return(42)
Я знаю, что, вероятно, уже слишком поздно отвечать на исходный постер, но я все равно отвечаю на него для дальнейшего использования , поскольку я пришел сюда с тем же вопросом, но выяснил, что он работает с последней версией rspec.
Чтобы заглушить метод экземпляра, вы можете сделать что-то вроде этого:
before :each do
@my_stub = stub("A")
@my_stub.should_receive(:do_something).with(no_args()).and_return(42)
@my_stub.should_receive(:do_something_else).with(any_args()).and_return(true)
A.stub(:new).and_return(my_stub)
end
Но, как указал псхнейдер, просто верните 42 по новому с помощью:
A.stub (: new) .and_return (42)
или что-то в этом роде.
Я нашел это решение на http://pivotallabs.com/introducing-rr/
new_method = A.method(:new)
A.stub!(:new).and_return do |*args|
a = new_method.call(*args)
a.should_receive(:do_something).and_return(23)
a
end
Мне нравится ответ Дениса Барушева. И я хотел бы предложить только один косметическое изменение, которое делает переменную new_method
ненужной. n заглушенных методов, чтобы к ним можно было получить доступ с префиксом proxied_by_rspec __
:
A.stub!(:new).and_return do |*args|
a = A.proxied_by_rspec__new(*args)
a.should_receive(:do_something).and_return(23)
a
end